Post on 10-Dec-2015
description
transcript
Slide 1
Object-Oriented Analysis and DesignCS-604
Subject InchargeDr. Paramvir SinghAssistant Professor
E-mail: singhpv@nitj.ac.in
Slide 2
Recommended Course Textbooks
• Roger S. Pressman (2010)Software Engineering:A Practitioner's Approach,7th edition, McGraw-Hill, USA
• Sommerville I. (2001,2004)Software Engineering 9th Edition (/Latest), Addison-Wesley, Harlow, Essex,UK
• Stevens P. with Pooley, R. (2010)Using UML: Software Engineering with Objects and Components,Addison-Wesley, Harlow, Essex, UK
Slide 3
Recommended Course Textbooks
• Head First OOAD – O’Really Publications• Object Oriented Software Engineering - McGrawHill
Slide 5
Software Vs Hardware
• Software is developed or engineered; it is not manufactured in the classical sense– Impacts the management of software projects
• Software doesn't wear out– Hardware bathtub curve compared to the
software ascending spiked curve• Although the industry is moving toward
component-based construction, most software continues to be custom built (it is still complex to build)
Slide 6
Software Vs Hardware
idealized curve
change
actual curve
Failurerate
Time
increased failurerate due to side effects
Slide 7
Changing Nature of Software
• System software (OS, drivers, file management utility) • Application software (Hostel Management system, Lib. System)• Engineering/scientific software (Satellite, Calculator, Earthquake intensity
measurement)• Embedded software (AC, TV etc)• Product-line software (e.g., inventory control, word processing, multimedia)• Web applications (Gtalk, Websites, Email services)• Artificial intelligence software (Robotic, Gaming, ANN)• Open world computing (small, wireless devices)• Open source (operating systems, databases, development environments)• The ".com" marketing applications
Slide 8
Use SE to ENSURE
• Quality– Software is of highest quality
• Time Schedule– Software finishes on estimated time
• Cost Schedule– Software consumes estimated budget
• Managed– Software is easily manageable after release
Slide 9
The Four P’s of Software Engineering
• People — the most important element of a successful project
• Product — the software to be built
• Process — the set of framework activities and software engineering tasks to get the job done
• Project — all work required to make the product a reality
Slide 10
The Four P’s of Software Engineering
End Product
Process 1 OR Process 2 OR Process 3
Selected based on:•Cost•Time •Quality•Resources
Slide 12
What is a Process?
• (Webster) A system of operations in producing something; a series of actions, changes, or functions that achieve an end or a result
• (IEEE) A sequence of steps performed for a given purpose
Slide 13
Generic Process Framework
Analysis Design Code Test
Communication Planning Modelling Construction
Obsolete Approach
Modern Approach
Deployment
Analysis Design Code Test
Slide 14
Generic Process Framework
• Communication– Involves communication among the customer and other stake holders;
encompasses requirements gathering• Planning
– Establishes a plan for software engineering work; addresses technical tasks, resources, work products, and work schedule
• Modeling (Analyze, Design)– Encompasses the creation of models to better understand the requirements and the
design• Construction (Code, Test)
– Combines code generation and testing to uncover errors• Deployment
– Involves delivery of software to the customer for evaluation and feedback
Slide 16
Process, Methods, and Tools
• Process– Provides the glue that holds the layers together; enables rational and
timely development; provides a framework for effective delivery of technology; forms the basis for management; provides the context for technical methods, work products, milestones, quality measures, and change management
• Methods– Provide the technical "how to" for building software; rely on a set of
basic principles; encompass a broad array of tasks; include modeling activities
• Tools– Provide automated or semi-automated support for the process and
methods (i.e. CASE tools)
Slide 17
Umbrella Activities (In addition to General Framework Activities)
• Software requirements management• Software project planning• Software project tracking and oversight• Software quality assurance• Software configuration management• Software subcontract management• Formal technical reviews• Risk management• Measurement – process, project, product• Reusability management (component reuse)• Work product preparation and production