Software Engineering II: Introduction PDF

Summary

This presentation provides an introduction to software engineering encompassing processes, tools, techniques, and the concept of well-engineered software. The presentation also reviews the challenging concepts of balancing different requirements, including cost vs efficiency and user-interface, with an overview of different software development cycles, in relation to software background and development.

Full Transcript

Software Engineering II Introduction to Software Engineering 1 Introduction to Software Engineering Software Engineering is the set of processes and tools to develop software. Software Engineering is the combination of all the tools, techniques, and processe...

Software Engineering II Introduction to Software Engineering 1 Introduction to Software Engineering Software Engineering is the set of processes and tools to develop software. Software Engineering is the combination of all the tools, techniques, and processes that used in software production. Therefore Software Engineering encompasses all those things that are used in software production like:  Programming Language  Programming Language Design  Software Design Techniques  Tools  Testing  Maintenance  Development 2 Well-Engineered Software Well-engineered software is one that has the following characteristics:  It is reliable  It has good user-interface  It has acceptable performance  It is of good quality  It is cost-effective Every company can build software with unlimited resources but well-engineered software is one that conforms to all characteristics listed above. 3 The Balancing Act! These requirements may be conflicting. For example, there may be tension among the following:  Cost vs. Efficiency  Cost vs. Reliability  Efficiency vs. User-interface 4 Challenge is to balance these requirements. Software Engineers always confront with the challenge to make a good balance of all these things depending on the requirements of the particular software system at hand. He should analyze how much weight should all these things get such that it will have acceptable quality, acceptable performance and will have acceptable user- interface. 5 Law of diminishing returns 6 Software Background Caper Jones a renounced practitioner and researcher in the filed of Software Engineering, had made immense research in software team productivity, software quality, software cost factors and other fields relate to software engineering. He made a company named Software Productivity Research in which they analyzed many projects and published the results in the form of books. Project Management Software Quality Assurance Requirement Engineering Software Configuration Management Design Software Integration Coding Rest of the activities Testing 7 Software Background Fred Brook is a renowned software engineer; he wrote a great book related to software engineering named “A Mythical Man Month”. He combined all his articles in this book. Here we will discuss one of his articles named “No Silver Bullet” which he included in the book. So, according to Fred Brook, in the eye of an unsophisticated manager software is like a giant. Sometimes it reveals as an unscheduled delay and sometimes it shows up in the form of cost overrun. To kill this giant the managers look for magical solutions. But unfortunately magic is not a reality. We do not have any magic to defeat this giant. There is only one solution and that is to follow a disciplined approach to build software. We can defeat the giant named software by using disciplined and8 Software Development 9 A Software Engineering Framework Quality Focus: The quality focus demands that processes be defined for rational and timely development of software. And quality should be emphasized while executing these processes. Processes: The processes are set of key process areas (KPAs) for effectively manage and deliver quality software in a cost effective manner. Methods: Methods provide the technical “how-to’s” to carryout these tasks. Tools: Tools provide automated or semi-automated support for software processes, methods, and quality control. 1 0 A Software Engineering Framework 1 1 Software Development Loop Problem Definition: In this stage we determine what is the problem against which we are going to develop software. Technical Development: This is the stage where a new system is actually developed that solves the problem defined in the first stage. Solution Integration: All those existing system(s) integrate with our new system at this stage. Status Quo: After going through the previous three stages successfully, when we actually deployed the new system at the user site then that situation is called status quo. 1 2 Software Development Loop 1 3 Thank You! 1 4

Use Quizgecko on...
Browser
Browser