As you learned in the first course in this series, there is no standard software development process.
The process that you will use in this course is a generalization of the common elements of the leading software development methodologies.
If you understand these essential elements, you will be able to customize the application of the general methodology to your specific domain or even choose one of the current methodologies that best supports your needs.
Let us review the phases of the project life cycle. The following series of images below names and describes the phases making up the project life cycle for developing software:
7 Phases of Project Life Cycle
Project initiation: Document the expectations of the user
Problem analysis: Define the resources of the problem domain
Architectural analysis: Select the architectural approach for the solution
Object design: Select and define the implementation for the software solution
Construction: Build, buy, integrate code to satisfy the design
Installation: Put the application into production
Maintenance: Enhance/revise the production application
Phases of the Project Life Cycle
The Project Life Cycle refers to a series of activities which are necessary to fulfill project goals or objectives.
Projects vary in size and complexity and all projects can be mapped to the following life cycle structure:
Starting the project
Organizing and preparing
Carrying out project work
Closing the project
Projects are broken down into phases so that extra control can be applied to effectively manage the processes.
These phases are further divided into subsets for easy management, control, and planning.
For a project to be successful, the project team must:
Select the appropriate processes to meet project goals and objectives.
Use a defined approach focused on meeting the requirements of the project.
Clearly define and agree upon stakeholder/customer needs and expectations.
Balance the competing demands of scope, time, cost, quality, resources, and risk to produce the specified product, service, or result.
The Project Initiation Phase is the 1st phase in the Project Management Life Cycle, as it involves starting up a new project.
Achitectural Analyis: Architectural analysis is used in software architecture to evaluate a system architecture.
Object Design: Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to software design.
Maintenance: Software maintenance in software engineering is the modification of the software after it has been delivered, to correct faults and improve performance or other attributes.
For example, in Figure 2-2 the name attribute is assigned the UML data type String using the format name : String.
end_date is assigned a class called Date from a library of classes provided by the Java programming language. The Date data type actually holds a reference to an object designed to represent information about a date and time. status is assigned a reference to an application-specific enumeration called Event_Status, which defines a set of valid literal values for event status, such as scheduled and cancelled.