I.SOFTWARE- set of instructions or programs instructing a computer to do specific tasks. It enables the user to interact with the computer, its hardware or perform tasks. Software is often divided into three categories: • System software serves as a base for application software. System software includes device drivers, operating systems (OSs), compilers, disk formatters, text editors and utilities helping the computer to operate more efficiently. It is also responsible for managing hardware components and providing basic non-task-specific functions. The system software is usually written in C programming language. • Application software is intended to perform certain tasks. Examples of application software include office suites, gaming applications, database systems and educational software. Application software can be a single program or a collection of small programs. II.DIFFERENCE BETWEEN SOFTWARE AND PROGRAM S. Software Program No. 1 The software is a broad term which is A program is set of instructions which designed to perform some specific set perform only a specific type of task. of operations. 2 A software consists of bundles of A program consists of a set of programs and data files. Programs in a instructions which are coded in a specific software use these data files to programming language like C, C++, perform a dedicated type of tasks. PHP, Java etc. 3 A software can be classified into two A program cannot be classified into categories: application software and various categories. system software. 4 Examples of application software: Program showing whether a given Microsoft Word, Microsoft Excel, number is even or odd, program to find VLC media player factorial of a number, program to find Examples of system software: greatest of all given numbers. Windows, Linux, Unix, Mac etc. 5 A software is developed by either a A program is developed and also used by single programmer or a group of either a single programmer or a group of programmers but it is developed for a programmers. naïve user. 6 Every software has a dedicated user Programs don’t have a user interface. interface. The user interface of a software may be in the form of command prompt or in a graphical format.
8 9 Software development life SDLC is not used to make programs. cycle (SDLC) is used to develop every software. A software is not compiled when we A program is compiled every time when give it commands to perform specific we need to generate some output from it. operations. However, a whole software is compiled, tested and debugged in the development process. III.CHARACTERISTICS OF SOFTWARE: 1. Maintainability is "the ease with which changes can be made to satisfy new requirements or to correct deficiencies" Well designed software should be flexible enough to accommodate future changes that will be needed as new requirements come to light. Maintenance accounts for nearly 70% of the cost of the software life cycle. 2. Correctness is "the degree with which software adheres to its specified requirements". Well designed software should meet all the requirements stated in the requirements specification document. This characteristic is one of the hardest to assess because of the tremendous complexity of software products. Also,some products of the software life cycle such as the design specification cannot be "executed" for testing. Instead, these products must be tested with various other techniques such as formal proofs, inspections, and walkthroughs. 3. Reusability is "the ease with which software can be reused in developing other software". By reusing existing software, developers can create more complex software in a shorter amount of time. Software can be designed to accommodate reuse in many situations. A simple example of software reuse could be the development of an efficient sorting routine that can be incorporated in many future applications. 4. Reliability is "the frequency and criticality of software failure, where failure is an unacceptable effect or behavior occurring under permissible operating conditions". The frequency of software failure is measured by the average time between failures. The criticality of software failure is measured by the average time required for repair. Ideally, software engineers want their products to fail as little as possible (i.e., demonstrate high correctness) and be as easy as possible to fix (i.e., demonstrate good maintainability). 5. Portability is "the ease with which software can be used on computer configurations other than its current one”. Porting software to other computer configurations is important for several reasons. First, "good software products can have a life of 15 years or more, whereas hardware is frequently changed at least every 4 or 5 years. Thus good software can be implemented, over its lifetime, on three or more different hardware configurations". Second, porting software to a
new computer configuration may be less expensive than developing analogous software from scratch. 6. Efficiency is "the degree with which software fulfills its purpose without waste of resources". Some measures of efficiency are: the speed of a program's execution., the amount of storage space the program requires for execution. Often these two measures are inversely related, that is, increasing the execution efficiency causes a decrease in the space efficiency. IV.PROJECT: is a sequence of tasks planned from beginning to end, bounded by time, resources and required results. Tasks need to be completed in order to reach a specific outcome. A project can also be defined as a set of inputs and outputs required to achieve a particular goal. SOFTWARE PROJECT: Software Project is the complete procedure of software development from requirement gathering to testing and maintenance, carried out according to the execution methodologies, in a specified period of time to achieve intended software product.A Project can be characterized as: • Every project may has a unique and distinct goal. • Project is not routine activity or day-to-day operations. • Project comes with a start time and end time. • Project ends when its goal is achieved hence it is a temporary phase in the lifetime of an organization. • Project needs adequate resources in terms of time, manpower, finance, material and knowledge-bank. V.WHY SPM? Software is said to be an intangible product. Most software products are tailor made to fit client’s requirements. The most important is that the underlying technology changes and advances so frequently and rapidly that experience of one product may not be applied to the other one. All such business and environmental constraints bring risk in software development hence it is essential to manage software projects efficiently. The image above shows triple constraints for software projects. It is an essential part of software organization to deliver quality product, keeping the cost within client’s budget constrain and deliver the project as per scheduled. There are several factors, both internal and external, which may impact this triple constrain triangle. Any of three factor can severely impact the other two. Therefore, software project management is essential to incorporate user requirements along with budget and time constraints.
1. Defines a plan and organises chaos – projects are naturally chaotic. The primary business function of project management is organizing and planning projects to tame this chaos. A clear path mapped out from start to finish ensures the outcome meets the goals of your project. 2. Establishes a schedule and plan – Without a schedule, a project has a higher probability of delays and cost overruns. A sound schedule is key to a successful project. 3. Enforces and encourages teamwork – A project brings people together to share ideas and provide inspiration. Collaboration is the cornerstone to effective project planning and management. 4. Maximises resources – Resources, whether financial or human, are expensive. By enforcing project management disciplines such as project tracking and risk management, all resources are used efficiently and economically. 5. Manages Integration – Projects don’t happen in a vacuum. They need to be integrated with business processes, systems and organizations. You can’t build a sales system that doesn’t integrate with your sales process and sales organization. It wouldn’t add much value. Integration is often key to project value. Project management identifies and manages integration. 6. Controls cost – some projects can cost a significant amount of money so on budget performance is essential. Using project management strategies greatly reduces the risk of budget overruns. 7. Manages change – projects always happen in an environment in which nothing is constant except change. Managing change is a complex and daunting task. It is not optional. Project management manages change. 8. Managing quality – Quality is the value of what you produce. Project management identifies, manages and controls quality. This results in a high quality product or service and a happy client. 9. Retain and use knowledge – projects generate knowledge or at least they should. Knowledge represents a significant asset for most businesses. Left unmanaged knowledge tends to quickly fade. Project management ensures that knowledge is captured and managed. 10. Learning from failure – projects do fail. When they do, it is important to learn from the process. Project management ensures that lessons are learned from project success and failure. VI. ACTIVITIES COVERED BY SOFTWARE PROJECT MANAGER A software project manager is a person who undertakes the responsibility of executing the software project. Software project manager is thoroughly aware of all the phases of SDLC that the software would go through. Project manager may never directly involve in producing the end product but he controls and manages the activities involved in