Vous êtes sur la page 1sur 32

DVSS: Course Introduction

Dr Atul Gupta

The K-2 Tower


8611 meters in the Karakorum range of the western Himalayas 2nd Highest peak and considered most difficult to climb (success rate less than 40%) An expedition to K-2 typically lasts several months Lot of planning and efforts Many unexpected events may happen.

NAS
Monitors and controls air-traffic in US More than 18,300 airport, 21 air route traffic control centers, 460 control towers More than 34000 pieces of equipments - radar systems, communication switches, radios, computer systems, displays Computers at 21 air route traffic control centers are IBM 3083 mainframes In 1996, US Govt initiated a modernization program that included satellite navigation, digital communications, automation, decision support system, etc A previous similar effort (AAS) was suspended in 1994 because of software failure

Engineering of Complex Systems


Complex systems many components and interactions External conditions can trigger unexpected changes The problem is beyond the control of any single individual Changes forces participants to look for new solutions Several participant need to cooperate and develop desired solution We are interested in Software-Intensive Systems

Software is also about FUN!

www.dilbert.com

Software
Economy is measured by availability of IT infrastructure and its successful use Software is the central to any IT infrastructure Multi-billion dollar Industry World is moving very fast. besides Software technology is changing even faster

Software
Dominates everything
Education to Employment Health to Life styles Entertainment Science and Exploration (on Earth and beyond) Management to Governance Business to Economics House-hold to Office Transportation to Teleconferencing Banking to Finance Planning to Design to Implementation to Evaluation Individual to Society Communication Ecological and Environmental balance Engineering Agriculture

Engineering Software
The main objective of the undergraduate programme in CSE

We are good at it: Writing Programs !


Find roots of a quadratic equation! Sorting algorithm! Implementing a data structure! Graph problem/algorithms! Writing database queries! Programming LEX, YACC Writing programs for Chat, Library, Reservation, etc.!

Writing Programs Dos !


You choose a programming language You write everything from scratch For you, writing program means mainly coding You do some testing to show that it works (ad hoc) You decide to stop coding (ad hoc) You show/submit it to your teacher Thats All !

Writing Programs Donts !


You dont do Requirement Engineering You dont do Formal Designing You dont follow standard coding practices You dont do Formal Verification and Validation You dont do Deployment You dont check-in your code Thats NOT All !

Writing Programs Donts !


Above All
Project Management Activities
Planning, Estimation, Scheduling, Tracking,

Configuration Management
Versioning, Change management, Bug tracking

Quality Management
Reviews, Audits,

Software Evolution

Developing Software
You choose a programming language You write everything from scratch For you, writing program means mainly coding You do testing to show that it works (ad hoc) You decide to stop coding (ad hoc) You show/submit it to your teacher Thats NOT All !

Developing Maintaining Software (Industrial Practice)


Multi-million LOC software project Organization-specific processcentric approach People-oriented (team) effort Some unfamiliar language Different development environment Support services

Welcome the World of Software Development !

How the Course Fits into CS Curriculum?


Most courses for learning technology Compilers, operating systems, databases, etc. This course concerns wrt. analysis, design, implementation, testing, and maintenance of Software Systems
Assume you can program/learn new languages Make use of technology as a tool to support process Skills will become very important upon graduation
complex systems, large teams dont look for large immediate impact in other CS courses
10/21/2010 16

A SE Course
Small groups of 3-4 students are assigned toy problems Deadline less than a month One strong programmer can carry the whole team by brute force Its not necessary to learn
Communication skills Use of modeling tool Deal with the ambiguities of actual problem Team skills

Course Objectives
Understand and Appreciate Software Engineering:
How to build high quality complex software systems within time while dealing with complexity and change

Acquire technical knowledge (main emphasis) Acquire managerial knowledge


10/21/2010 18

Acquire Technical Know-how


Factual SE information Learn how to undertake an SE activity individually as well as in groups Learn how to design and develop software systems RUP, Agile, SA/SD Understand Software Modeling and Design Learn different modeling techniques using UML models:
Use Case modeling Object Modeling Functional Modeling Dynamic Modeling

Learn how to Validate Software Learn how to use CASE (Computer Aided Software Engineering) Tools:
Rational Rose, JUnit
10/21/2010 19

Acquire Managerial Know-how


Understand the Software Lifecycle (SDLC)
Process, Product, Project and People Learn about different software development lifecycles Best Practices Process Improvement, CMM

Estimates, Planning and Executions


Cost, Effort, Resources, Risk Deliverables Scheduling and tracking

Communicate and critically evaluate yours results


key to your future success
10/21/2010 20

Software Engineering Skills


Communication Feedback Motivation Analytical Project Management related Skills
Planning and Tracking Risk Assessment and Mitigation Estimation

This Course is about


Understanding and learning about SDLC Methodologies, techniques and tools that can be used for better S/W development Technical and not so technical issues Learning on real life projects

Disclaimer!
This course will not teach you about
Any specific software development technologies like .NET, Java Any specific software process that is followed in an industry (not a case study)

Course Organization
Technical and Managerial Know-how for SDLC Teaching
Lectures (with slides) Course Project Hands-on (Modeling, TDD, Unit Testing, Code Inspection) Term Papers and Presentations

Topics to be covered
SDLC, Software products, processes, people, and projects Requirements
Gathering, Analysis Modeling and Specifications Use case modeling, case studies

Object-Oriented and Function-Oriented Analysis and Design


Software Architecture Static and Dynamic Modeling, Scenarios, System-subsystem Class diagrams, DFDs, SASD

Software Development Methodologies


UP and Agile (RUP, XP, Agile, TDD, Scrum)

Software Testing and Quality Assurance


Unit Testing, Integration Testing, System Testing, Regression Testing, Reviews, Walkthroughs, Code Inspections

Evaluation Criteria
30% Course Project 40% End-Semester + Mid Semester 20% Term Paper and Presentation 10% Attendance
There will be bonus marks (max 10%) for undertaking additional work on course objectives.

Course Project [120 Marks]


For a given real world problem, develop
Requirement Specification SRS [10] Use Case Model with UCD [10] Scenarios [10] Class Diagram (Domain Level) [10] Component/Architecture Diagram [10] Class Diagram (Domain Level) [10] Implementation [60]

Will Be done in groups, each with 4 students

Term Paper and Seminar [40]


Motivation ?
Ensure good technical writing and presentation skills To write research papers/articles Contributions! Develop a general understanding about them

Topics ?
A Small List is available You can choose too !

Contents ?
A generic structure of the contribution will be made available Specific needs Presentation and Evaluation

Beware of !
Plagiarism Copyrights

Books and Reference Materials


Text Books
Pankaj Jalote. An integrated approach to Software Engineering, 3rd Ed. Narosa Publication 2005 Bernd Bruegge, Allen Dutoit: Object-Oriented Software Engineering: Using UML, Patterns, and Java, Addison Wesley, 2003.

Course site
https://sites.google.com/site/atulkg/courses/software-engineering

Internet

10/21/2010

30

Questions ?

SE as a Separate Discipline
Several Universities Offers Undergraduate program in SE [SWEBOK04]
University of New South Wales (Australia), McMaster University (Canada), the Rochester Institute of Technology (US), the University of Sheffield (UK), and others.

Vous aimerez peut-être aussi