SOFTWARE_ENGINEERING_UNIT_I_ROGER S PRESSMAN_A PRACTIONAR'S APPROACH.pptx

jeevadharshinimca 1,466 views 62 slides Sep 04, 2024
Slide 1
Slide 1 of 62
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47
Slide 48
48
Slide 49
49
Slide 50
50
Slide 51
51
Slide 52
52
Slide 53
53
Slide 54
54
Slide 55
55
Slide 56
56
Slide 57
57
Slide 58
58
Slide 59
59
Slide 60
60
Slide 61
61
Slide 62
62

About This Presentation

This SlideShare presentation offers a comprehensive overview of the foundational concepts in software engineering, focusing on the first unit of a typical software engineering course. It covers essential topics, ranging from the definition of software engineering to the exploration of advanced proce...


Slide Content

SOFTWARE ENGINEERING UNIT-1 INTRODUCTION TO SOFTWARE ENGINEERING K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

1. SOFTWARE ..? 2.WHY A SOFTWARE NEEDS TO BE ENGINEERED? K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE Software is more than just a program code . A program is an executable code, which servers some computational purpose. Software is the Information Transformer . “Instructions when executed provide Desired Features” K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE ENGINEERING Software engineering as an engineering branch associated with the development of software product using well-defined scientific principles , methods and procedures. The outcome of software engineering is an efficient and reliable software product. Makes sure the software is correct and consistent. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

NATURE OF SOFTWARE DUAL ROLE----> “PRODUCT AND THE VEHICLE ”. AS A “PRODUCT” Information transformer producing, managing and displaying information AS A “VEHICLE” A Vehicle for delivering a product- Control of computer (operating system) ,the communication of information(networks) and the creation of other programs. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

CHARACTERISTICS OF SOFTWARE Software is developed or engineered. It is not manufactured in the classical sense. Software does not wear out . It deteriorates due to change Software is custom built. R ather than assembling existing components. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE APPLICATIONS System Software a collection of programs written to service other programs. (e.g., compilers, editors, and file management utilities) AI software : Artificial intelligence (AI) software makes use of non-numeric algorithms to solve complex problems that are not amenable to computation or straightforward analysis ( e.g., point-of-sale transaction processing, real-time manufacturing process control) K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE APPLICATIONS-1 R eal time Software: Presentations are communication tools that can be used as lectures . Web based Software : A web application is an application accessed via a web browser over a network. E gs - - web applications, such as Google Docs. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE APPLICATIONS-2 E ngineering and Scientific S oftware : Characterized by "number crunching" algorithms. Egs : Astronomy to volcanology, Computer-aided design ETC. Embedded Software : Resides within a product or system and is used to implement and control features and functions for the end user and for the system itself. Egs -- Braking systems, Washing machine. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

“ LAYERED TECHNOLOGY” K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

A QUALITY FOCUS: Main principle of Software Engineering is Quality Focus. An engineering approach must have a focus on quality. Total Quality Management (TQM), Six Sigma, ISO 9001, ISO 9000-3, CAPABILITY MATURITY MODEL (CMM), CMMI & similar approaches encourages a continuous process improvement culture. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

PROCESS: It is a foundation of Software Engineering It is the glue the holds the technology layers It defines a framework with activities for effective delivery of software engineering technology. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

METHODS: It provides technical how-to’s for building software It encompasses many tasks including communication, requirement analysis, design modeling, program construction, testing and support K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Tools: Software Engineering Tools allows automation of activities which helps to perform systematic activities . A system for the support of software development, called computer-aided software engineering (CASE ). Examples: Testing Tools, Bug/Issue Tracking Tools etc… Computer-aided software engineering (CASE) is the scientific application of a set of tools and methods to a software system which is meant to result in high-quality, defect-free, and maintainable software products CASE tools automate many of the activities involved in various life cycle phases K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SOFTWARE PROCESS A Process is a collection of activities, actions , and tasks that are performed when some work is done. llec Tasks....??? Activities.....????Actions .....???? In Simple Words, A process defines who is doing what,when and how to reach a certain goal. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

PROCESS FRAMEWORK Communication : Involves heavy communication with the customer ( and other stakeholders) and encompasses requirements gathering. Planning: Describes the technical tasks to be conducted, the risks that are likely , resources that will be required, the work products to be produced and a work schedule. Modeling: Encompasses the creation of models that allow the developer and customer to better understand S/W req. and the design that will achieve those requirements. Construction: Combines code generation and the testing required uncovering errors in the code. Deployment: Deliver the product to the customer who evaluates the delivered product and provides feedback K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

UMBRELLA ACTIVITIES S/W project tracking and control: Allows the team to assess progress against the project plan and take necessary action to maintain schedule. Risk Management: Assesses the risks that may affect the outcome of the project or the quality. Software quality assurance : defines and conducts the activities required to ensure software quality. Formal Technical Review: Uncover and remove errors before they propagate to the next action. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

UMBRELLA ACTIVITIES-1 Measurement: defines and collects process, project, and product measures that assist the team in delivering S/W that meets customers’ needs. Software configuration management: Manages the effect of change throughout the S/W process Reusability management: defines criteria for work product reuse. Work product preparation and production: encompasses the activities required to create work products such as models, documents, etc. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

PRESCRIPTIVE DATA MODELS K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

PRESCRIPTIVE DATA MODELS Prescriptive process models define a set of activities, actions, tasks, milestones, and work products that are required to engineer high-quality software. These process models are not perfect, but they do provide a useful roadmap for software engineering work. A prescriptive process model populates a process framework with explicit task sets for software engineering actions. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

The Waterfall model Incremental Process Model RAD Model Evolutionary Process Model Spiral Model K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

WATERFALL MODEL-- Classic LifeCycle Model K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

The outcome of one phase acts as the input for the next phase sequentially. When requirements of the problem are well understood. Oldest paradigm Problems: Not suitable for the projects where requirements are at a moderate to high risk of changing. So , risk and uncertainty is high with this process model. Does not accomodate Changes K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

V MODEL K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

It is based on the idea of a “V” shape, with the two legs of the “V” representing the progression of the software development process from requirements gathering and analysis to design, implementation, testing, and maintenance . Left side – code generation Right side– testing K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

THE INCREMENTAL MODEL The software is first developed on very small scale and all the steps are followed which are taken into consideration. Then , on every next iteration, more features and modules are designed, coded, tested, and added to the software . Every cycle produces a software, which is complete in itself and has more features and capabilities than that of the previous one. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

EVOLUTIONARY PROCESS MODEL Evolutionary process models produce with each iteration produce an increasingly more complete version of the software with every iteration. Evolutionary models are iterative. They are characterized in a manner that enables software engineers to develop increasingly more complete versions of the software. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

PROTOTYPING K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

T he prototype serves as a mechanism for identifying software requirements. The prototype can serve as “ the first system .” DISADVANTAGES: “FEW FIXES CANNOT BE TAKEN INTO ACCOUNT” QUICK IMPLEMENTATION May lead to improper implementation. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SPIRAL MODEL Spiral model is a combination of both, iterative model and one of the SDLC model . Using the spiral model, software is developed in a series of evolutionary releases. During early iterations , the release might be a paper model or prototype. During later iterations, increasingly more complete versions of the engineered system are produced. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Originally proposed by Barry Boehm . Risk-driven process model generator Anchor point milestones— A combination of work products and conditions that are attained along the path of the spiral—are noted for each evolutionary pass. Cyclic approach K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SPIRAL MODEL K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

First quadrant (Objective Setting ): • During the first quadrant, it is needed to identify the objectives of the phase. • Examine the risks associated with these objectives. Second Quadrant (Risk Assessment and Reduction ): • A detailed analysis is carried out for each identified project risk. • Steps are taken to reduce the risks. For example, if there is a risk that the requirements are inappropriate, a prototype system may be developed. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Third Quadrant (Development and Validation ): Develop and validate the next level of the product after resolving the identified risks. Fourth Quadrant (Review and Planning ): Review the results achieved so far with the customer and plan the next iteration around the spiral. Progressively more complete version of the software gets built with each iteration around the spiral K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

EVOLUTIONARY PROCESS MODEL Difficult in project planning . Speed of evolution is not known Does not focus on flexibility and extensibility (more emphasis on high quality) . Requirement is balance between high quality and flexibility and extensibility. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

RAD MODEL An incremental software process model . Having a short development cycle. High-speed adoption of the waterfall model using a component based construction approach . Creates a fully functional system within a very short span time of 60 to 90 days K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Multiple software teams work in parallel on different functions Requires a number of RAD teams Requires commitment from both developer and customer for rapid-fire completion of activities Requires modularity Not suited when technical risks are high K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

The RAD Model consists of the following phases: Communication ,Planning, Construction : Component reuses automatic code generation testing Modeling : Business modeling ,Data modeling, Process modeling Deployment: integration, delivery ,feedback K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

THE CONCURRENT DEVELOPMENT MODEL Also called concurrent engineering Constitutes a series of framework activities, software engineering action, tasks and their associated states All activities exist concurrently but reside in different states Applicable to all types of software development Event generated at one point in the process trigger transitions among the states . K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

AGILITY AND PROCESS K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Agility means characteristics of being dynamic, content specific, aggressively change embracing and growth oriented. The Processes which are adaptable of changes in requirements, which have incrementality and work on unpredictability. These processes are based on three assumptions which all do refer to the unpredictability in different stages of software process development such unpredictability at time requirements, at analysis and design or at time construction . So these processes are adaptable at all stages on SDLC. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

AGILITY PROCESS It is difficult to predict in advance which software requirements will persist and which will change. It is difficult to predict how much design is necessary before construction is used to prove the design. Analysis, design, construction, and testing are not as predictable. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

AGILITY PRINCIPLES Satisfy the customer through early and continuous delivery of valuable software. Welcome changes. Deliver working software frequently. Build projects around motivated individuals. Business people and developers must work together Face-to-face conversation. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

AGILITY PRINCIPLES--1 Working software is the primary measure of progress. Agile processes promote sustainable development. Continuous attention to technical excellence Simplicity—the art of maximizing the amount of work. Self– organizing teams. T unes and adjusts its behavior accordingly K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

AGILE PROCESS MODELS Extreme Programming(XP) Adaptive Software development(ASD) Dynamic software Development Method(DSDM) Scrum Crystal Feature Driven development (FDD) 7. Agile Modeling(AM) K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

THE POLITICS OF AGILE DEVELOPMENT CONVENTIONAL OR AGILE METHODS??? (JUSTIFY) K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

SCRUM K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Scrum emphasizes the use of a set of software process patterns that have proven effective for projects with tight timelines, changing requirements, and business criticality. Each of these process patterns defines a set of development actions. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Backlog (2 R’S): a prioritized list of project requirements. items can be added to the backlog at any time The product manager assesses the backlog and updates priorities. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Sprints (30 DAYS): consist of work units that are required to achieve a requirement defined in the backlog that must be fit into a predefined time-box. Changes (e.g., backlog work items) are not introduced during the sprint. A short-term, but stable environment. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Scrum meetings:[15 MINUTES] Three key questions are asked and answered: What did you do since the last team meeting? What obstacles are you encountering? What do you plan to accomplish by the next team meeting? K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Scrum master: A team leader, leads the meeting and assesses the responses from each person. Demo: deliver the software increment to the customer so that functionality that has been implemented can be demonstrated and evaluated . K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

EXTREME PROGRAMMING XP is a lightweight, efficient, low-risk, flexible, predictable, scientific , and fun way to develop software. Extreme Programming (XP) was conceived and developed to address the specific needs of software development by small teams in the face of vague and changing requirements. Extreme Programming is one of the Agile software development methodologies. It provides values and principles to guide the team behavior. The team is expected to self-organize. Extreme Programming provides specific core practices where − Each practice is simple and self-complete. Combination of practices produces more complex and emergent behaviour . K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Planning: T he planning activity (also called the planning game) begins with listening. L istening leads to the creation of a set of “stories” (also called user stories). the XP team orders the stories that will be developed in one of three ways: (1) all stories will be implemented immediately (within a few weeks) (2) the stories with highest value will be moved up in the schedule and implemented first (3) the riskiest stories will be moved up in the schedule and implemented first K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Design: XP design rigorously follows the KIS (keep it simple. XP encourages the use of CRC cards . If a difficult design problem is encountered as part of the design of a story, XP recommends the immediate creation of an operational prototype of that portion of the design. Called a spike solution K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA

Refactoring: does not alter the external behavior of the code yet improves the internal structure . Coding: P air programming---- two people work together at one computer workstation to create code for a story. Testing: individual unit tests are organized into a “universal testing suit XP acceptance tests, also called customer tests are specified by the customer. K.JEEVA DHARSHINI,KONGU ENGINEERING COLLEGE,INDIA