




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
1. Describe principles, concepts and practice of software engineering. 2. Explain the methods and processes of constructing the different types of software systems. 3. Apply techniques and tools of software engineering within the context of systematic construction of quality software
Typology: Lecture notes
1 / 180
This page cannot be seen from the preview
Don't miss anything!





























































































Lectures
Introduce software engineering and to explain its importance Develop a broad understanding of the software engineering domain
Software engineering is the application of engineering to the design, development, implementation, testing and maintenance of software in a systematic method.
Software refers to a program or a set of instructions and applications used to manage and control various functions of a device such as a computer. Unlike hardware, which represents a physical part of a device, software is virtual. Software products may be developed for a particular customer or may be developed for a general market
Software is a product (^) Delivers computing potential (^) Produces, manages, acquires, modifies, displays, or transmits information Software is a vehicle for delivering a product (^) Supports or directly provides system functionality (^) Controls other programs (e.g. operating systems) (^) Effects communications (e.g. networking software) (^) Helps build other software (e.g. software tools)
No clear breakdown of application types, following are some generally accepted overlapping categories System software Real-time software Business information software Engineering & scientific software Embedded software Personal application software Communication software
Cost Performance
Maintainability Software must evolve to meet changing needs; Dependability Software must be trustworthy; e.g. reliability, security, safety. Efficiency Software should not make wasteful use of system resources;
A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in responses to changing demands
A simplified representation of a software process, presented from a specific perspective. Examples of process perspectives are Workflow - sequence of activities Data-flow - information flow Role/action - who does what
16
A set of ordered tasks to produce indented output of some kind Involving activates, constraints; and Resources The process of building a software product Life cycle - describes the life of the software from conception through its implementation, delivery, use and maintenance.
17
Common understanding of the activities, resources and constraints involved in software development. Creating processes helps Find inconsistencies, Redundancies; and Omissions
19
Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance
20
Inflexible partitioning of the project into distinct stages Makes it difficult to respond to changing customer requirements. Model is only appropriate when the requirements are well-understood; and changes will be fairly limited during the design process. Few business systems have stable requirements.