0% found this document useful (0 votes)
11 views33 pages

Week 11 PP

The document outlines the objectives and key concepts of a Software Engineering course, emphasizing the importance of software development methods, object-oriented design, and testing approaches. It describes software characteristics, classifications, and the attributes of good software, while also differentiating between software engineering and computer science. Additionally, it covers software development life cycle models, particularly the Waterfall model, including its strengths and drawbacks.

Uploaded by

uw-21-ai-bs-026
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
11 views33 pages

Week 11 PP

The document outlines the objectives and key concepts of a Software Engineering course, emphasizing the importance of software development methods, object-oriented design, and testing approaches. It describes software characteristics, classifications, and the attributes of good software, while also differentiating between software engineering and computer science. Additionally, it covers software development life cycle models, particularly the Waterfall model, including its strengths and drawbacks.

Uploaded by

uw-21-ai-bs-026
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 33
Introduction to Software Engineering Course Objectives: e The main objectives of this course are to: 1. To enhance the basics of Software engineering methods and practices 2. To earn the techniques for developing software systems 3. To understand the object orient 4. To understand software testing approaches Prepared by Dr.T.Thendral 06.07.2023 On the successful completion of the course,student will be able to: Understand engineering e Apply the software engineering models in developing software application e Implement the object oriented design in various projects e Knowledge on how to do a software project within- depth analysis e To inculcate knowledge on Software engineering concepts in turn gives a road map to design a new software project ee ee ea the basic concepts of software What is Software? e Software is a set of instructions to acquire inputs and to manipulate them to produce the desired output in terms of functions and performance as determined by the user of the software e Also include a set of documents, such as the software manual, meant for users to understand the software system Description of the Software @ A software is described by its capabilities. The capabilities relate to the functions it executes, the features it provides and the facilities it offers. EXAMPLE Software written for Sales-order processing would have different functions to process different types of sales order from different market segments . v The features for example, would be to handle multi-currency computing, updating product, sales and Tax status. v The facilities could be printing of sales orders, email to customers and reports to the store department to dispatch the goods. Classes of Software Software is classified into two classes: ©@ Generic Software: is designed for broad customer market whose requirements are very common, fairly stable and well understood by the software engineer @ Customized Software: is developed for a customer where domain, environment and requirements are being unique to that customer and cannot be satisfied by generic products What is Good Software? Software has number of attributes which decide whether it is a good or bad . e The definition of a good software changes with the person who evaluates it. e The software is required by the customer, used by the end users of an organization and developed by software engineer e Each one will evaluate the different attributes differently in order to decide whether the software is good What are the attributes of good software? The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. Maintainability - Software must evolve to meet changing needs Dependability - Software must be trustworthy Efficiency - Software should not make wasteful use of system resources Usability - Software must be usable by the users for which it was designed Software - Characteristics Software has a dual role. It is a product, but also a vehicle for delivering a product. © Software is a logical rather than a physical system element. e Software has characteristics that differ considerably from those of hardware. v Software is developed or engineered, it is not manufactured in the classical sense v Software doesn’t “wear out” v Most software is custom-built, rather than being assembled from existing components. Changing nature of software(Types) e@ System Software- A collection of programs written to service other programs at system level. For example, compiler, operating systems. e Real-time Software- Programs that monitor/analyze/control real world events as they occur. e Business Software- Programs that access, analyze and process business information. e Engineering and Scientific Software - Software using “number crunching” algorithms for different science and applications. System simulation, computer-aided design. Changing nature of software(Types) e Embedded Software-: Embedded software resides in read-only memory and is used to control products and systems for the consumer and industrial markets. It has very limited and esoteric functions and control capability. e Artificial Intelligence (AI) Software: Programs make use of AI techniques and methods to solve complex problems. Active areas are expert systems, pattern recognition, games e Internet Software : Programs that support internet accesses and applications. For example, search engine, browser, e-commerce software, authoring tools. Software Engineering “A systematic approach to the analysis, design, implementation and maintenance of software.” (The Free On-Line Dictionary of Computing) e “The systematic application of tools and techniques in the development of computer-based applications.” (Sue Conger in The New Software Engineering) e “Software Engineering is about designing and developing high-quality software.” (Shari Lawrence Pfleeger in Software Engineering -- The Production of Quality Sofiware) What is Software Engineering? Engineering: The Application of Science to the Solution of Practical Problems © Software Engineering: The Application of CS to Building Practical Software Systems © Programming — Individual Writes Complete Program — One Person, One Computer — Well-Defined Problem — Programming-in-the-Small © Software Engineering - Individuals Write Program Components ~ Team Assembles Complete Program What is the difference between software engineering and computer science? ering is concerned with t theory > the practicalities of developing fundamentals » — delivering useful software ‘Computer science theories are currently insufficient to act as a complete underpinning for software engineering, but it is a foundation for practical aspects of software engineering Software engineering is a layered technology - Pressman’s view: Software Engineering Layers Se, What is Software Engineering? e Software methods: e Software engineering methods provide the technical “how to’s” for building software. e@ Methods --> how to encompass a broad array of tasks: - requirements analysis, design, coding, testing, and maintenance e Software engineering methods rely on a set of basic principles. Software methods Seed Nt r Bre ROPeP MOO suc: ea ere rere ae What is Software Engineering? e Software Process: Software engineering process is the glue that holds: - technology together - enables rational and timely development of computer software Software engineering process is a framework of a set of key process areas It forms a basis for: - project management, budget and schedule control - applications of technical methods - product quality control What is Software Engineering? e Software Tools: - programs provide automated or semi-automated support for the process and methods - programs support engineers to perform their tasks in a systematic and/or automatic manner Why Software Engineering? © Objectives: - Identify new problems and solutions in software production - Study new systematic methods, principles, approaches for system analysis, design, implementation, testing and maintenance. - Provide new ways to control, manage, and monitor software process - Build new software tools and environment to support software engineering Why Software Engineering? Major Goals: - To increase software productivity and quality - To effectively control software schedule and planning - To reduce the cost of software development - To meet the customers’ needs and requirements - To enhance the conduction of software engineering process - To improve the current software engineering practice - To support the engineers’ activities in a systematic and f efficient manner Process Framework Activities e Communication e Planning e@ Modeling e Construction e Deployment People Process Technology Model of Process Improvement Umbrella Activities e Software Project Tracking & Control e Risk Management e Formal Technical Reviews e Software Configuration Management e Reusability Management SDLC Process Model SDLC — Software Development Life Cycle Process model is a framework that describes the activities,actions,tasks,milestones,and work products performed at each stage of a software development project that leads to a high quality software Life cycle models e Waterfall model e Incremental process models — Incremental model — RAD model e Evolutionary Process Models — Prototyping model - Spiral model e Object oriented process model ATERFALL MODEL k.as Linear life cycle model or classic life cycle model (implementation a, P| | | ies, WATERFALL MODEL WATERFALL MODEL e Project initiation & requirement gathering — What is the Problem to Solve? ~ What Does Customer Need/Want? — Interactions Between SE and Customer — Identify and Document System Requirements — Generate User Manuals and Test Plans + Planning — Prioritize the requirements — Plan the process WATERFALL MODEL e Analysis and design How is the Problem to be Solved? High-Level Design Determine Components/Modules Transition to Detailed Design Detail Functionality of Components/Modules e Coding and Testing Writing Code to Meet Component/Module Design Specifications Individual Test Modules in Isolation Integration of Components/Modules into Subsystems Integration of Subsystems into Final Programing red by Dr.T:Thendral WATERFALL MODEL Deployment — System Delivered to Customer/Market — Bug Fixes and Version Releases Over Time Strengths Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule Waterfall Drawbacks e All projects cannot follow linear process e All requirements must be known upfront e Few business systems have stable requirements e The customer must have patience e A working version of the program will not be available until late in the project time-span e Leads to ‘blocking states’ e Inappropriate to changes When to use the Waterfall Model e Requirements are very well known e Product definition is stable e Technology is understood e New version of an existing product e Porting an existing product to a new platform

You might also like