We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7
Chapter 1: Introduction
• Software engineering is an engineering discipline that
is concerned with all aspects of software production. • Essential software product attributes are maintainability, Dependability, and security, efficiency and acceptability. • The high-level activities of specification, development, validation and evolution are part of all software processes. • The fundamental notions of software engineering are universally applicable to all types of system development. • There are many different types of system, and each requires appropriate software engineering tools and techniques for their development. • The fundamental ideas of software engineering are applicable to all types of software system. • Software engineers have responsibilities to the engineering profession and society. • Professional societies publish codes of conduct which set out the standards of behavior expected of their members. Chapter 2 : Software processes
• Software processes are the activities involved in
producing a software system, Software process models are abstract representation of these processes. • General process models describe the organization of software processes. Examples of these general models include the “Waterfall” model, incremental development, and reuse-oriented development. • Requirements engineering is the process of developing software specification. • Design and implementation processes are concerned with transforming requirements specification into an executable software system. • Software Validation is the process of checking that the system conforms to its specification and that it meets the real needs of the user of the system. • Software evolution takes place when you change existing software systems to meet new requirements. The software must evolve to remain useful. • Processes should include activities such as prototyping and incremental delivery to cope with change • Processes may be structured for iterative development and delivery so that changes may be made without disturbing the system as a whole. • The principal approaches to process improvement are agile approaches, geared to reducing process overheads, and maturity-based approaches based on better process management and the use of good software engineering practice. • The SEI process maturity framework identifies maturity levels that essentially correspond to the use of good software engineering practice.
Chapter 22 : Project management
• Good project management is essential if software
engineering projects are to be developed on schedule and within budget. • Software management is distinct from other engineering management. Software is intangible. Projects may be novel or innovative with no body of experience to guide their management. Software processes are not as mature as traditional engineering processes. • Risk management involves identifying and assessing project risks to establish the probability that they will occur and the consequences for the project if that risk does arise. You should make plans to avoid, manage or deal with likely risks of or when they arise. • People management involves choosing the right people to work on a project and organizing the teams and their working environment. • People are motivated by interaction with other people, the recognition of management and their peers, and by being given opportunities for personal development. • Software development groups should be fairly small and cohesive. The key factors that influence the effectiveness of a group are the people in that group, the way that it is organized and the communication between group members. • Communications within a group are influenced by factors such as the status of group members, the size of the group, the gender composition of the group, personalities and available communication channels.
Chapter 23 : Project planning
• The price charged for a system does not just depend on
its estimated development costs and the profit required by the development company. Organizational factors may mean that the price is increased to compensate for increased risk or decreased to gain competitive advantage. • Software is often priced to gain contact, and the functionality of the system is then adjusted to meet the estimate price. • Plan-driven development is organized around a complete project plan that defines the project activities, the planned effort, the activity schedule and who is responsible for each activity. • Project scheduling involves the creation of various graphical representations of part of the project plan. Bar charts, which show the activity duration and staffing timelines, are the most commonly used schedule representation. • A project milestone is a predictable outcome of an activity or set of activities. At each milestone, a formal report of progress should be presented to management. A deliverable is a work product that is delivered to the project costumer. • The agile planning game involves the whole team in project planning. The plan is developed incrementally and, if problems arise, it is adjusted so that software functionality is reduced instead of delaying the delivery of increment. • Estimation techniques for software may be experience- based, where managers judge the effort required, or algorithmic, where the effort required is computed from other estimated project parameters. • The COCOMO II costing model is a mature algorithmic cost model that takes project, product, hardware and personnel attributes into account when formulating a cost estimate.
Chapter 3 : agile software development
• Agile methods are incremental development methods
that focus on rapid software development, frequent releases of the software, reducing process overheads by minimizing documentation and producing high- quality code. • Agile development practices include o User stories for system specifications o Frequent releases of the software o Continuous software improvement o Test-first development o Customer participation in the development team. • Scrum in an agile method that provides a project management framework. It is centered around a set of sprints, which are fixed time periods when a system increment is development. • Many practical development methods are a mixture of plan-based and agile development. • Scaling agile methods for large systems are difficult. Large systems need up-front design, and some documentation and organizational practice may conflict with the informality of agile approaches.