
















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
An overview of software engineering principles, including the software development life cycle (sdlc), the waterfall model, the spiral model, and various software project management techniques. It covers topics such as requirement gathering, analysis and design, risk analysis, system testing, software metrics, and effort estimation models like cocomo. The document highlights the importance of effective project management, including risk identification, analysis, and mitigation, as well as the use of scheduling methods like pert and cpm. It emphasizes the need for continuous monitoring and control of the project schedule, resources, and budget to ensure successful software development.
Typology: Study notes
1 / 24
This page cannot be seen from the preview
Don't miss anything!
Software is more than just a program code. A program is an executable code, which serves some computational purpose. Software is considered to be collection of executable programming code, associated libraries and documentations.
Software Engineering is an engineering branch associated with development of software product using well-defined scientific principles, methods and procedures.
SDLC: SDLC is a step by step procedure or systematic approach to develop software and it is followed within a software organization. It consists of various phases which describe how to design, develop, enhance and maintain particular software.
Phase 1: Requirement collection and analysis: In this phase mainly focus on gathering the business needs from the customer. Business Analyst collects the requirement from the customer and prepares the BRS (Business Requirement Specification) which has the requirement in the business form. Then a group of people sits together and determines the requirements like; What should be input data to the system? Who is going to use the system?
What should be output data by the system? These questions are getting answered during this phase. After this, a Requirement Specification document is created which gives the guideline for the upcoming phase of the model.
Once the BRS document is completed, a set of people like Human Resource department, Finance department, Business analyst, Architect and Project manager are sit together and analyze if the project is do able or not. This decision is taken based on the cost, time, resources and etc.
Phase 3: Design: In this phase system design specification is prepared from the requirement document. Design is a blue print of the application and it helps in specifying hardware and requirements of the system and helps in defining architecture of the system
Phase 4: Coding: Once the system design document is ready, in this phase developer’s starts writing the code using any programming language i.e., they start developing the software. Generally task is divided in units or modules and assigned to the developers and this coding phase is the longest phase of SDLC. Phase 5: Testing: Once the software is ready and is deployed in the testing environment, test engineers starts testing, if the functionality of an application is working according to requirement or not. During this phase test engineers may encounter some bugs/defects which need to be sent to developers, the developers fix the bug and sent back to test engineers for testing. This process continuous until the software is bug free/stable/working according to the requirement. Phase 6: Installation/Deployment: Once the product developed, tested and works according to the requirement it is installed / deployed at customer place for their use. Phase 7: Maintenance: When the customers starts using the software they may face some issues and needs to be solved, to fix those issue, tested and handed over back to the customer as soon as possible, which is done in the maintenance phase.
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall
Implementation − With inputs from the system design, the system is first developed in small programs called units, which are integrated in the next phase. Each unit is developed and tested for its functionality, which is referred to as Unit Testing. Integration and Testing − All the units developed in the implementation phase are integrated into a system after testing of each unit. Post integration the entire system is tested for any faults and failures. Deployment of system − Once the functional and non-functional testing is done; the product is deployed in the customer environment or released into the market. Maintenance − There are some issues which come up in the client environment. To fix those issues, patches are released. Also to enhance the product some better versions are released. Maintenance is done to deliver these changes in the customer environment.
Waterfall Model – Advantages Simple and easy to understand and use Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. Clearly defined stages. Easy to arrange tasks.
Waterfall Model – Disadvantages No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Not a good model for complex and object-oriented projects. It is difficult to measure progress within stages.
Spiral model is a combination of sequential and prototype model. This model is best used for large projects which involves continuous enhancements. There are specific activities which are done in one iteration (spiral) where the output is a small prototype of the large software. The same activities are then repeated for all the spirals till the entire software is build. A spiral model has 4 phases described below:
Phase Name
Activities performed Deliverables / Output
Planning - Requirements are studied and gathered.
Requirements understanding document
Finalized list of requirements.
Risk Analysis
Requirements are studied and brain storming sessions are done to identify the potential risks
Once the risks are identified , risk mitigation strategy is planned and finalized
Document which highlights all the risk & its mitigation plans.
Engineering Actual development and testing if the software takes place in this phase
Code Test cases and test results Test summary report and defect report.
Evaluation Customers evaluate the software and provide their feedback and approval
Features implemented document
Advantages of using Spiral Model: Development is fast Larger projects / software are created and handled in a strategic way Risk evaluation is proper. More and more features are added in a systematic way. Software is produced early. Disadvantages of using Spiral model: Risk analysis is important phase so requires expert people. Is not beneficial for smaller projects. Spiral may go infinitely. Documentation is more as it has intermediate phases. It is costly for smaller projects.
The V-model is an SDLC model where execution of processes happens in a sequential manner in a V-shape. It is also known as Verification and Validation model. The following illustration depicts the different phases in a V-Model of the SDLC.
Unit Testing
Unit testing is the testing at code level and helps eliminate bugs at an early stage, though all defects cannot be uncovered by unit testing.
Integration Testing Integration testing is associated with the architectural design phase.
System Testing System tests check the entire system functionality and the communication of the system under development with external systems.
Acceptance Testing Acceptance tests uncover the compatibility issues with the other systems available in the user environment. The advantages of the V-Model method are as follows − This is a highly-disciplined model and Phases are completed one at a time. Works well for smaller projects where requirements are very well understood. Simple and easy to understand and use. The disadvantages of the V-Model method are as follows − High risk and uncertainty. Not a good model for complex and object-oriented projects. Poor model for long and ongoing projects. Not suitable for the projects where requirements are at a moderate to high risk of changing.
The People: The Stakeholders
Four categories of stakeholders
The People: Team Leaders
The People: The Software Team The People: Coordination and Communication Issues
Documents, Milestones, Memos, Review Meetings, Inspections , Information Meetings, Problem Solving ,E- Mail, Bulletin Boards, Video Conferencing ,Discussion With People Outside Project Team
The Product
The Process
The project manager must decide which process model is most appropriate based on framework activities.
Project Indicator Enables a software project manager to
Process Metrics and Software Process Improvement
Factors that influence quality:
Types of process metrics:
Private &. public metrics
SW process improvement should begin at the individual level
Private metrics:
defect rates by individual defect rates by module errors found during development
Public metrics: Use information from individual and team metrics Some public metrics: project-level defect rates effort Calendar times Software Measurement Categories in 2 ways: Direct measure of the software process & Product E.g. Lines of code (LOC), execution speed, and defect) Indirect measures of the product that includes functionality, complexity, efficiency, reliability, maintainability etc. Size Oriented Metrics Size - oriented software metrics are derived by normalizing quality and/or productivity measures by considering the size of the software that has been produced. A set of simple size - oriented metrics can be developed for each project: Errors per KLOC (thousand lines of code). Defects4 per KLOC.
Number of user outputs
Each user output that provides application-oriented information to user (reports, screens, error messages, etc.).
Number of inquiries Inquiry is an on-line input that results in generation of an immediate SW response in form of an on-line output.
Number of internal files Include each logical file or if using a DB, logical grouping of data, that is generated, used and maintained by the application.
Number of external interfaces Files passed or shared between applications should be counted. Compute: the function points calculation FP= count-total * [0.65+.01* Fi ]
Reconciling LOC and FP metric: Relationship between lines of code and function points depends upon the programming language that is used to implement the software and the quality of the design. Following table provides rough estimates of the average number of LOC required to build one FP in various programming languages:
Metrics for SW Quality Focus on the process, the project and the product (as do productivity metrics)
Factors that affect quality
product operation - using it product revision - changing it product transition - portability
Measuring quality:
correctness degree to which SW performs its required function Defects per KLOC - most common measure for correctness. Maintainability. Ease with which a program can be corrected, adapted, or enhanced. MTTC - mean time to change - Simple metric - time it takes to analyze, implement change, test it, and distribute it to users. Integrity
Defect Removal Efficiency(DRE)
Estimation is the process of finding an estimate, or approximation, which is a value that can be used for some purpose even if input data may be incomplete, uncertain, or unstable.
Estimation determines how much money, effort, resources, and time it will take to build a specific system or product. Estimation is based on −
E represents effort, in person months,
S is the size of the software development, in LOC or FP, and,
a, b, and c are values derived from data
COCOMO: When Barry Boehm wrote 'Software Engineering Economics', published in 1981, he introduced an empirical effort estimation model (COCOMO - COnstructive COst MOdel) that is still referenced by the software engineering community. The model has been reviewed since 1981 and details of the revised and updated COCOMO 2 model.
The original COCOMO model was a set of models; 3 development modes (organic, semi-detached, and embedded) and 3 levels (basic, intermediate, and advanced). COCOMO model levels:
Basic - predicted software size (lines of code) was used to estimate development effort.
Intermediate - predicted software size (lines of code), plus a set of 15 subjectively assessed 'cost drivers' was used to estimate development effort
Advanced - on top of the intermediate model, the advanced model allows phase-based cost driver adjustments and some adjustments at the module, component, and system level.
COCOMO development models: Organic - small relatively small, simple software projects in which small teams with good application experience work to a set of flexible requirements.
Embedded - the software project has tight software, hardware and operational constraints. Semi-detached – an intermediate (in size and complexity) software project in which teams with mixed experience levels must meet a mix of rigid and less than rigid requirements.
Example1: Suppose a project was estimated to be 400 KLOC. Calculate the effort and development time for each of the three model i.e., organic, semi-detached & embedded.
Solution: The basic COCOMO equation takes the form:
Effort=a 1 *(KLOC) a 2 PM Tdev=b 1 *(efforts)b 2 Months Estimated Size of project= 400 KLOC
(i)Organic Mode
E = 2.4 * (400)1.05 = 1295.31 PM D = 2.5 * (1295.31)0.38=38.07 PM
(ii)Semidetached Mode E = 3.0 * (400)1.12=2462.79 PM D = 2.5 * (2462.79)0.35=38.45 PM
(iii) Embedded Mode
E = 3.6 * (400)1.20 = 4772.81 PM D = 2.5 * (4772.8)0.32 = 38 PM
The project plan sets out the resources available about to the project, the work breakdown and a schedule for carrying out the work. Most plans should include the following sections: