Software Engineering Module

print rush




print rush

VOL.1 S T U D I O S SOFTWARE ENGINEERING BTECH 3RD YEAR UNIT 1 TO UNIT 5 35 PAGES

print rush

Print Rush Studios

Software Engineering / Unit-1 Unit – 01: Software engineering introduction Content:- software engineering- definition, process, evolution and myths, generic process model, framework, process models- waterfall, incremental, evolutionary, spiral, component based model, rational unified model. WHAT IS SOFTWARE ENGINEERING? [End Sem 2018- 2M] Software engineering is the branch of computer science that deals with the design, development, testing, and maintenance of software applications. Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. SOFTWARE PROCESS:- The term software specifies to the set of computer programs, procedures and associated documents (Flowcharts, manuals, etc.) that describe the program and how they are to be used. A software process is the set of activities and associated outcome that produce a software product. Software engineers mostly carry out these activities. These are four key process activities, which are common to all software processes. These activities are: 1. Software specifications: The functionality of the software and constraints on its operation must be defined. 2. Software development: The software to meet the requirement must be produced. 3. Software validation: The software must be validated to ensure that it does what the customer wants. 4. Software evolution: The software must evolve to meet changing client needs. SOFTWARE EVOLUTION:- The process of developing a software product using software engineering principles and methods is referred to as software evolution. This includes the initial development of software and its maintenance and updates, till desired software product is developed, which satisfies the expected requirements. 1

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 ● Evolution starts from the requirement gathering process. After which developers create a prototype of the intended software and show it to the users to get their feedback at the early stage of software product development. ● The users suggest changes, on which several consecutive updates and maintenance keep on changing too. This process changes to the original software, till the desired software is accomplished. ● Even after the user has desired software in hand, the advancing technology and the changing requirements force the software product to change accordingly. The only feasible and economical solution is to update the existing software so that it matches the latest requirements. SOFTWARE MYTHS:- Myths about software and its creation persist despite being untrue. These false beliefs have become common knowledge among managers and developers, making breaking free from old habits challenging. Software Myths are:Management Myth Myth 1: Manuals will have simple procedures, principles, and standards that are required for developers to enquire about every piece of information as they are necessary for software development. Reality 1: modules can be out-dated, inadaptable, and incomplete. Hence, developers are not aware of every standard mentioned in the manual as it can reduce the delivery time and enhance the quality. Myth 2: In the world of software development, there’s a popular belief that if a project is running late, just adding more programmers to the team will magically speed things up. Reality 2: However, adding more people to delayed projects can increase the issues. Hence, developers who work on projects have to teach newcomers and this may delay the project. Customer Myth Myth 1: Software is flexible, and developers can easily make changes to accommodate new requirements as they come up during development. They can adapt quickly to meet the project’s needs. Reality 1: As software development progresses over time, it becomes increasingly challenging to accommodate changes. Making alterations at later stages of development results in additional cost . Practitioner Myth Myth 1: There is a misconception that once the software is developed or the code is delivered to the customer, the developer’s job is finished. Reality 1: Is that software development is an ongoing process that involves maintenance, updates, bug fixes, and support even after the initial delivery. Developers play a crucial role in ensuring the software continues to function properly and meets the customer’s evolving needs over time. Myth 2: Software testing becomes feasible only when the software program is in operation and running. 2

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 Reality 2: At any point during software development, the quality of the software can be evaluated by applying a QA mechanism. Quality Assurance techniques allow developers to measure the software’s performance and identify potential issues, ensuring that the final product meets the desired standards. SOFTWARE CRISIS:1. Size: Software is becoming more expensive and more complex with the growing complexity and expectation out of software. 2. Quality: Many software products have poor quality, i.e., the software products defects after putting into use due to ineffective testing technique. 3. Cost: Software development is costly i.e. in terms of time taken to develop and the money involved. 4. Delayed Delivery: Very often the software takes longer than the estimated time to develop, which in turn leads to cost shooting up. GENERIC PROCESS MODEL [End Sem 2018- 3M] The generic process model is an abstraction of the software development process. It is used in most software since it provides a base for them. The generic process model encompasses the following five steps: Communication- In this step, we communicate with the clients and end-users. ● We discuss the requirements of the project with the users. ● The users give suggestions on the project. If any changes are difficult to implement, we work on alternative ideas. Planning- In this step, we plan the steps for project development. After completing the final discussion, we report on the project. ● Planning plays a key role in the software development process. ● We discuss the risks involved in the project. 3

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 Modelling- In this step, we create a model to understand the project in the real world. We showcase the model to all the developers. If changes are required, we implement them in this step. ● We develop a practical model to get a better understanding of the project. Construction- In this step, we follow a procedure to develop the final product. ● If any code is required for the project development, we implement it in this phase. ● We also test the project in this phase. Deployment- In this phase, we submit the project to the clients for their feedback and add any missing requirements. ● We get the client feedback. ● Depending on the feedback form, we make the appropriate changes SDLC: - It stands for Software Development Lifecycle. It is cost-effective and time-efficient process that development teams use to design and build high-quality software. The goal of SDLC is to minimize project risks through forward planning so that software meets customer expectations during production and beyond. SDLC outlines several tasks required to build a software application. Some common SDLC phases are● Plan- The planning phase typically includes tasks like cost-benefit analysis, scheduling, resource estimation, and allocation. The development team collects requirements from several stakeholders such as customers, internal and external experts, and managers to create a software requirement specification document. ● Design- In the design phase, software engineers analyse requirements and identify the best solutions to create the software 4

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 ● Implement- In the implementation phase, the development team codes the product. They analyse the requirements to identify smaller coding tasks they can do daily to achieve the final result. ● Test- The development team combines automation and manual testing to check the software for bugs. Quality analysis includes testing the software for errors and checking if it meets customer requirements. ● Deploy- The deployment phase includes several tasks to move the latest build copy to the production environment, such as packaging, environment configuration, and installation. Maintain- Here, the team fixes bugs, resolves customer issues, and manages software changes. The team monitors overall system performance, security, and user experience to identify new ways to improve the existing software. TYPES OF PROCESS MODEL IN SOFTWARE ENGINEERING:● Waterfall model: - The waterfall model is a linear, sequential approach to the software development lifecycle (SDLC). The waterfall model uses a logical progression of SDLC steps for a project, similar to the direction water flows. It sets distinct endpoints or goals for each phase of development. Those endpoints or goals can't be revisited after their completion. ⮚ Phases of the waterfall model: - The waterfall methodology has seven stages: 1. Requirements- Potential requirements, deadlines and guidelines for the project are analyzed and formal requirements document (SRS) is prepared, also called a functional specification. This stage of development defines and plans the project without mentioning specific processes. 2. Analysis-The system specifications are analyzed to generate product models and business logic to guide production. This is also when financial and technical resources are audited for feasibility. 3. Design-A design specification document is created to outline technical design requirements, such as the programming language, hardware, data sources, architecture and services. 4. Coding and implementation- The source code is developed using the models, logic and requirement specifications designated in the prior phases. Typically, the system is coded in smaller components, or units, before being put together. 5. Testing- This is when quality assurance, unit, system and beta tests identify issues that must be resolved. This may cause a forced repeat of the coding stage for 5

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 debugging. If the system passes integration and testing, the waterfall continues forward. 6. Operation and deployment-The product or application is deemed fully functional and is deployed to a live environment. 7. Maintenance- Corrective, adaptive and perfective maintenance is carried out indefinitely to improve, update and enhance the product and its functionality. This could include releasing patch updates and new versions. ⮚ When to use SDLC Waterfall Model? ● ● ● ● ● When the requirements are constant and not changed regularly. A project is short The situation is calm Where the tools and technology used is consistent and is not changing When resources are well prepared and are available to use. ⮚ Advantages:● ● ● ● ● ● ● enables large to move toward a common goal defined in the requirements stage; forces structured, disciplined organization; simplifies understanding, following and arranging tasks; facilitates departmentalization and managerial control based on the schedule or deadlines; reinforces good coding habits to define before implementing design and then code; enables early system design and specification changes to be easily done; and Clearly defines milestones and deadlines. ⮚ Disadvantages:● ● ● ● ● ● ● ● Design isn't adaptive; when a flaw is found, the entire process often needs to start over. Method doesn't incorporate mid process user or client feedback, and makes changes based on results. Waterfall model delays testing until the end of the development lifecycle. It doesn't consider error correction. The methodology doesn't handle requests for changes, scope adjustments and updates well. Waterfall doesn't let processes overlap for simultaneous work on different phases, reducing overall efficiency. No working product is available until the later stages of the project lifecycle. Waterfall isn't ideal for complex, high-risk on-going projects. Incremental model: - Incremental Model is a process of software development where requirements are broken down into multiple standalone modules of software development cycle. Incremental development is done in steps from analysis design, implementation, testing/verification, maintenance. Each iteration passes through the requirements, design, coding and testing phases. And each subsequent release of the system adds function to the previous release until all designed functionality has been implemented. 6

Print Rush Studios

Print Rush Studios

Software Engineering / Unit-1 ⮚ When to use Incremental models? ● ● ● ● ● Requirements of the system are clearly understood When demand for an early release of a product arises When software engineering team are not very well skilled or trained When high-risk features and goals are involved Such methodology is more in use for web application and product based companies ⮚ Advantages: ● ● ● ● ● ● ● Prepares the software fast. Clients have a clear idea of the project. Changes are easy to implement. Provides risk handling support, because of its iterations. Adjusting the criteria and scope is flexible and less costly. Comparing this model to others, it is less expensive. The identification of errors is simple. ⮚ Disadvantages: ● ● ● ● ● A good team and proper planned execution are required. Because of its continuous iterations the cost increases. Issues may arise from the system design if all needs are not gathered upfront throughout the duration of the program lifecycle. Every iteration step is distinct and does not flow into the next. It takes a lot of time and effort to fix an issue in one unit if it needs to be corrected in all the units. Evolutionary model:- Evolutionary models in software engineering are iterative and incremental approaches that allow for the development of software systems through a series of iterations or releases. These models emphasize adaptability and flexibility, allowing for changes to be made throughout the development process. Involves breaking down the software development process into smaller, manageable increments or iterations. Each iteration involves the completion of a subset of the overall software requirements, allowing for continuous testing, feedback, and refinement. 7

Print Rush Studios

Print Rush Studios

⮚ ● ● ● ● ⮚ ● ● ● ● Software Engineering / Unit-1 Advantages:Allows for incremental development and improvement Enables early delivery of working software Facilitates continuous feedback and collaboration with stakeholders Reduces the risk of project failure by identifying issues early on Disadvantages:May require more time and effort to manage and coordinate changes Requires a high level of collaboration and communication among team members May not be suitable for projects with strict deadlines or fixed budgets Can result in a less predictable and more uncertain development process Spiral model [End Sem 2018- 5M] The spiral model is a systems development lifecycle (SDLC) method used for risk management that combines the iterative development process model with elements of the Waterfall model. The spiral model is used by software engineers and is favoured for large, expensive and complicated projects. When viewed as a diagram, the spiral model looks like a coil with many loops. ⮚ Advantages:- ● Highly flexible ● Can easily handle risk ● Customer satisfaction 8

Print Rush Studios



Flipbook Gallery

Magazines Gallery

Catalogs Gallery

Reports Gallery

Flyers Gallery

Portfolios Gallery

Art Gallery

Home


Fleepit Digital © 2021