APT 2080: INTRODUCTION TO SOFTWARE ENGINEERING Topic 1: Introduction Lecturer – Jennifer Gachukia ([email protected])
Software Engineering Software Engineering is the science and art of building significant software systems that are: 1) on time 2) on budget 3) with acceptable performance 4) with correct operation.
The economies of all developed nations are dependent on software. More and more systems are software controlled. Software engineering is concerned with theories, methods and tools for professional software development. Software engineering expenditure represents a significant fraction of the GNP of developed countries. Software Engineering
4 Technology Development Pattern Art Craft Engineering Esoteric Past Experience Systematic Use of Past Experience and Scientific Basis Technology Time Unorganized Use of Past Experience
5 Why Study Software Engineering ? To acquire skills to develop large programs. Exponential growth in complexity and difficulty level with size. The ad hoc approach breaks down when size of software increases: --- “ One thorn of experience is worth a whole wilderness of warning .”
6 Cont … Ability to solve complex programming problems: How to break large projects into smaller and manageable parts? Learn techniques of: specification, design, interface development, testing, project management, etc . To acquire skills to be a better programmer: Higher Productivity Better Quality Programs
Software costs often dominate system costs. The costs of software on a PC are often greater than the hardware cost. Software costs more to maintain than it does to develop. Software engineering is concerned with cost-effective software development. Software Costs
8 Software Crisis Software products: fail to meet user requirements. frequently crash. expensive. difficult to alter, debug, and enhance. often delivered late. use resources non-optimally.
9 Software Crisis (cont.) Year Hw cost Sw cost Relative Cost of Hardware and Software 1960 1999
10 Factors contributing to the software crisis Larger problems, Lack of adequate training in software engineering, Increasing skill shortage, Low productivity improvements.
11 Programs versus Software Products Usually small in size Author himself is sole user Single developer Lacks proper user interface Lacks proper documentation Ad hoc development. Large Large number of users Team of developers Well-designed interface Well documented & user-manual prepared Systematic development
Project Planning software project management process begins with project planning objective of software project planning - to provide a framework for manager to make reasonable estimates of resources, costs and schedules
Why Project Failures Major reasons for project runaways: unclear objectives bad planning no project management methodology new technology insufficient staff All of these relate to project management Effective Project M anagement (PM) is key to successfully executing a project 13
Why improve Project Management ? Better predictability leading to commitments that can be met Lower cost through reduced rework, better resource management, better planning,.. Improved quality through proper quality planning and control Better control through change control, Configuration Management, monitoring etc. 14
Cont … Better visibility into project health and state leading to timely intervention Better handling of risks reducing the chances of failure All this leads to higher customer satisfaction And individual as wells organizational improvement 15
Phases of SPM The software project management activities include: Project planning and scheduling Project cost Project monitoring and reviews Personnel selection and evaluation Report writing and presentations
The Project Management Process Has three phases - planning, monitoring and control, and closure Planning is done before the main engineering life cycle (LC) and closure after the LC Monitoring phase is in parallel with LC 17
Project Planning Basic objective: To create a plan to meet the commitments of the project create a path that, if followed, will lead to a successful project Planning involves defining the LC process to be followed, estimates, detailed schedule, plan for quality, etc. Main output a project management plan, and project schedule 18
Key Planning Tasks Define suitable processes for executing the project Estimate effort Define project milestones and create a schedule Define quality objectives and a quality plan Identify risks and make plans to mitigate them Define measurement plan, project-tracking procedures, training plan, team organization, etc. 19
Thank you for Your Audience and Valuable Contributions