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...
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 process models like Extreme Programming (XP).
Introduction to Software Engineering
Software engineering is the application of engineering principles to software development in a structured manner. The presentation begins by explaining the significance of software engineering in the modern world, particularly its role in managing the complexity of software systems, ensuring quality, and facilitating efficient project management.
Core Concepts
The presentation introduces software and its various types, such as system software, application software, and embedded software. It highlights the unique characteristics of software,
The discussion then shifts to the Software Development Life Cycle (SDLC), a framework outlining the stages involved in software development. Several SDLC models are explored:
Waterfall Model: A linear, sequential approach ideal for projects with stable requirements.
V-Model: Focuses on verification and validation, aligning testing with development phases.
Incremental Model: Develops software in small increments, allowing for flexibility and early feedback.
Spiral Model: Combines iterative development with risk management, suitable for complex and high-risk projects.
Agile Methodologies
The presentation addresses the growing importance of Agile methodologies, which prioritize customer collaboration, adaptive planning, and early delivery. The Agile Manifesto, the foundation of Agile practices, is discussed, along with popular frameworks like Scrum .
Scrum: Organizes work into short, iterative sprints, promoting teamwork, communication, and continuous improvement.
Extreme Programming (XP) Process Model
The presentation concludes with a detailed examination of the Extreme Programming (XP) process model, an Agile framework designed to enhance software quality and adaptability. XP promotes frequent releases, Test-Driven Development (TDD), pair programming, continuous integration, and collective code ownership, all aimed at reducing the cost of changes by addressing them early in the development process.
XP’s benefits include higher software quality and greater customer satisfaction, though it requires strong discipline and commitment from the development team.
Conclusion
This presentation provides a solid foundation in software engineering principles and methodologies, with a special focus on the XP process model. It is an excellent resource for students, professionals, and educators looking to deepen their understanding of software development.
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
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
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 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