Software Engineering

Unit 1
Software:
a) Instructions (Computer Programs) that when executed provide desired
features, function, and performance.
b) Data structures that enable the programs to adequately manipulate
information.
c) Documents that describe the operation and use of the programs.

Definition Software Engineering:
.
“Software engineering is the technological and managerial discipline
concerned with systematic production and maintenance of software products that
are developed and modified on time and within cost estimates”.
Goals of Software Engineering
The primary goals of Software Engineering is
1. To improve the quality of software.
2. To increase productivity.
3. To increase the job satisfaction of software engineers.
Software engineering is based on the following disciplines
1. Computer Science.
2. Management Science.
3. Economics.
4. Communication Skills.
5. Engineering approach to problem solving.
Software Engineering is a labor intensive activity where high degree of
communication is required among
1. Customers.
2. Managers.
3. Software Engineers.
4. Hardware Engineers.
5. Other related technologists.

Terms:
Programmer:
Denote an individual who is concerned with details of implementing, packaging
and modifying algorithms, data structures, returning programming languages.
Software Engineers:
Concern with the issues of
1. Analysis
2. Design
3. Verification &Testing
4. Documentations
5. Software maintenance
6. Project Management

Computer Software:
It includes the Source code and all the associated documents and
documentation that constitute the software product.
Components of Software products
1. Requirements Documents
2. Design specification
3. Source code
4. Test Plans
5. Principles of Operation
6. Quality assurance procedure
7. Software problem reports
8. maintenance procedures
9. User’s manual
10. Installation Instruction
11. Training Aids.
Documentation:


Explains the characteristic of the documents.
Internal Documentation of source code - it describes the
characteristics of the code.
External Documentation --- it explains the characteristic of the
documentation associated with code.

Developer:
Developer or Software Engineer is used interchangeable.
Customer:
An individual or organization.
Software Reliability:
The ability of a program to perform a required function and their stated
conditions for a stated period of time.

Software maintenance involves 3 activities. 1. 2. 80 % for software cost and 20% for Hardware cost.Some Size Factors: Total effort devoted to software: H / w S / W c o s t R a t io 150 % of cost 100 50 0 year In 1960 the ratio was approximately 80% Hardware cost and 20% Software cost.In 1980 the ratio was reversed.Correcting bugs. Adapt 5. Adapting the products to new processing environments 3. Distribution of Effort: Life cycle of Software 1. The reason is the transistors. Distribution of Maintenance: . Enhance 6. Fix The life span of software products is one to 3 years for development 5 to 15 years for maintenance. Analyze & Design 2. Implement 3. Enhancing the capability of the product. Intetpreter circuits have resulted in dramatic decreases in Hardware cost. Test 4.

Correction ---20% Distribution of effort for development phase 1. . enhancement.  Software maintenance activities consumed more resources than software development activities. Enhancement—60% 2. Testing requires half the effort during software development.Implementation.Integration & Acceptance testing—40% From observations. Activities of system testing.  A large percentage of total effort is devoted to software enhancement. unit testing – 2 0% 3. Adaptation—20% 3. adaptation consumed ¾ the of total life cycle effort.Analysis & Design—40% 2. Debugging.Enhanc e 40 35 30 25 20 Analyze Test 15 Adap Fi x Implem 10 t 5 0 1.

It requires medium interaction between programmers and customers. analysis. It involves one programmer often working part time. 2. 7.000 to 50. 3. The program will contain up to 500 lines of code. 3. 3. They usually do not have interaction between other programs. 4. 2. 5. 2.000 to 100. A certain degree of formality is required in Planning. Number of routines used ranges from 250 to 1000. It requires multilevel management. The entire project is a combination of several subsystems. Very little need for Formal analysis. Duration of 1 to 6 months. They are mostly personal software for exclusive use of the programmer. Lines of code range from 10. elaborate design documentation or extensive planning. 4. 8. standardized documentation.Project size is a major factor that determines the level of management control and the types of tools and techniques required on a software project. 3) Medium size Projects:1. Examples are large compilers.Project Size Categories Project Size: . There is negligible interaction between the programmer and customer. The modules in the project have significant interaction between other programs and software systems. graphics software for data acquisition and display. The software would contain 10 to 20 subroutines 5. 6. Project duration lies between 2 to 3 years. 4) Large Projects:1. Requires 5 to 20 programmers. Time spent is between 1 to 2 years. compliers. They involve 2 to 5 programmers. 7. 5. The total project may contain 25 to 50 routines. 4. 6. 2) Small Projects:1. 6. . It can consist of 50. Involves one programmer. 1) Trivial Projects:1. 7. risk estimation. 5. 6. 3. process control systems.000 LOC. formal reviews etc. 2. small MIS software etc. real time control Systems etc. 4. They include assemblers. These projects can involve extensive planning. There are certain categories of projects depending on the size. inventory systems. Documentation and Project reviews.000 LOC. Generally used for small commercial applications including report generation and simple data manipulation. The program can contain 1000 to 2000 lines of code. Time spent is few days or few weeks. small time sharing systems.

3. 4. The subsystems are very complex and are developed separately under expert guidance. telecommunications. These projects involve mainly real time processing. The entire project is an integration of several extremely large systems which further consist of several large subsystems. and Military command & control systems. The prominent feature of these kinds of projects involves real-time processing. 6) Extremely large projects:1. multitasking and distributed processing. 4. They employ 2000 to 5000 programmers. The number of software source instructions may reach 10 lakh LOC. 5. It may require 100 to 1000 programmers. 5. The entire project is divided in to several major subsystems that extensively interact with each other. 6. telecommunication and multitasking. Time period ranges nearly 10 years. 6. There are 1 million to 10 million LOC. Ballistic missile defense systems.5) Very Large Projects:1. Its duration may range from 4 to 5 years. Quality and Productivity factors during Software Development Following are the factors that affect the quality and productivity 1) Individual ability 2) Team communication 3) Product complexity 4) Appropriate notations 5) Systematic approaches 6) Controlling changes 7) Level of technology 8) Required reliability 9) Available time 10) Problem understanding 11) Stability of requirements . Examples include Air traffic control systems. Mega database systems. 2. 2. 3. 7. Examples include large operating systems. Military command & control systems etc.

like design reviews. . Many recent Innovations in software engineering.The new approach towards software development requires many individuals to be involved. Good and standardized notations can clarify the relationships and interactions. b) Change in requirements due to poor understanding of problem. To minimize the change the following suggestions can be utilized a) Use of appropriate notations and standard techniques.As the level of technology is changing rapidly hence modern programming languages should be used during Development. structured walkthroughs and code reading exercises improve communication Between the programmers.Production and maintenance of software is a labor intensive activity.12) Required skills 13) Facilities and resources 14) Adequacy of training 15) Management skills 16) Appropriate goals 17) Rising expectations 1) Individual ability: .The factors that contribute the factor of change in software are a) Design deficiencies in hardware. b) Scope of the mechanism to change i. c) External economic and political factors etc. c) During planning process the strategies for controlled changes should be included.There are three generally acknowledged levels of product complexity – a) Application programs. b) Utility Programs and c) System level programs. measured in terms of LOC per programmer day. etc. flexibility provided to the software. 7) Level of technology: . 2) Team communication: .Following certain standard systematic approach in procedures and techniques makes the software development Process very professional and contribute in improving the quality of the software product. 5) Systematic approach: . 6) Controlling change: . Modern programming languages provide – a) Improved facilities for data definition & data usage. Application programs have the highest productivity and Systems programs have the lowest Productivity. 3) Product complexity: . There are two aspects to ability a) The general competence of the individual and b) Familiarity with the particular application area. of any specific interest. So these factors are direct functions of individual ability and effort. 4) Appropriate notations: .The representation schemes are of fundamental importance.e.

10) Available time: .Programmer productivity is sensitive to the. f) Opportunities for professional advancement etc. b) Design. e) Precise product specifications etc. 8) Level of reliability: . 12) Facilities and resources: .It is seen that the fresher’s from college do not have the following skills.High reliability can be achieved by taking great care during – a) Analysis. creates more satisfaction among the programmers rather than status factors. 11) Required Skills: . Too much reliability causes decreased productivity when measured in LOC produced Per Programmer Month. e) Variety of tasks. There are some suggestions for Avoiding these problems – a) Careful planning. b) Quite place of work. c) System testing and d) Maintenance.. Preparations of external documents require good writing and expressive skills. which are very necessary for becoming a successful software engineer – a) Express oneself clearly in English b) Develop & validate software requirements and design specifications. 9) Problem understanding: . Both human and machine resources are required to increase reliability.The practice of SE required variety of skills. Extending a project beyond some nominal Duration increases the total effort required. c) Plenty of access to the machine d) Creative challenges. calendar time available for project completion. customers and other engineers. f) Work with project management techniques.b) User-defined exception handling. b) Customer interviews. c) Task observation. Also varied tools are provided such as assemblers and primitive debugging facilities integrated under a single fully integrated development environment.Through various studies it had been found that workrelated factors such as – a) Good machine. Debugging requires deductive or detective kind of skills.Failure to understand the problem can result in an unsuccessful project. e) Perform economic analysis. It is observed that the development time cannot be compressed below 75 percent of the nominal development time. d) Prototyping. d) Perform software maintenance. 13) Adequacy of training: . The requirement definition and design activity are conceptual in nature hence require good creative problem solving skills. c) Concurrent programming etc. . c) Work with in application area. Software Engineers should have good social skills to interact properly with the managers.

They also have ultimate responsibility for ensuring that software products are delivered on time and within cost estimates. So the management skills in a candidate should also include technical and managerial Competency. expert guidance and experience from previous projects. degrades overall quality and reduces the productivity. f) Data-base size etc.There are several other factors that influence the productivity – a) Familiarity to the programming environment. Managers should control the resources and the environment in which technical activities occurs. size and complexity of software applications are growing at a fast rate but also the expectations and increasing demands. Generally the most common goals include a) Generality. then the requirements would change throughout the development process and may extend to maintenance phase.Setting of appropriate goals is a major contributing factor in successful execution of a project. 15) Appropriate goals: . High productivity and quality factors can be achieved by adhering to the goals and requirements established for the software during Project planning. e) Experience in that particular area of interest. b) Software and c) Hardware.As the concept of SE is new hence the managers who work in traditional styles are unable to properly manage the SE activities. In this point if the analysis and prediction is not based on facts. Un-stability of requirements increases the cost. Managerial Issues : Ideal or expected activities of Managers in a firm – 1. The requirements definition is done during problem analysis phase where the amount and type of resources are predicted. Hence it’s necessary to adhere to the latest that is happening. Hence adequate of training is required for entry-level programmers. b) Efficiency and c) Reliability. They have the responsibility of ensuring that the software products exhibit the functional and quality attributes desired by the . c) Stability of the computing system.The requirements of a software project includes a) Manpower. Also it is seen that during giving promotions if the competency of the candidate is only measured in the technical point of view then there may arise the same kind of problem. 14) Management Skills: . d) Memory & timing constrains. 17) Stability of requirements: .Progress is constantly being made in the development of tools and techniques to improve software quality and programmer productivity. Other factors: . Hence great care should be taken during the initial phase of problem identification & problem analysis. b) Amount and type of access to the computing system.g) Work in groups. 3. 16) Rising expectations: . equally diversity. 2.

b) Resource allocation policies. 4. Organizing and monitoring a project includes – a) Cost estimation. Planning a Software Project: (i ) Problem Definition There is a need to prepare a concise statement of the problem to be solved and the constraints that exist for its solution in customer’s terminology. e) Setting project milestones. Problem definition requires understanding of the problem domain and the problem environment. c) Qualitative product goal :.the system should reduce the cost of transaction by about 25 %. f) Making schedule adjustments.the development process should adhere to quality observed under quality assurance.Customer. g) Establishing quality assurance procedures. 3) Goals apply to both the development process and the work products. d) Budgetary control. Requirement analysis and Goal determination:Goals: 2) Goals are targets for achievement and serve to establish the frame work for a software development project. After preparing the solutions the successive task includes the determination of the a) Appropriateness of the computerized solution. 5) Other common goals include a) transportability. 4) Goals can be either qualitative or quantitative. Etc. and c) Actual performance of the tasks developed by the planner. d) Quantitative product goal :.the system should be delivered with in a fixed time. 5. Here the planner should not be biased in any way and should certainly be technically experienced. The managers are responsible for project management which includes methods for organizing and monitoring the project progress. b) Cost-effectiveness. j) Development of contractual agreements with customers taking in to view legal obligations and responsibilities. They have the following categoriesa) Qualitative process goal :. c) It should avoid displacing existing workers as it may not be acceptable in the society. b) Quantitative process goal :. h) Establishing effective communication between project members. b) Observation of the problem tasks. c) ease for nonprogrammers etc. Techniques for gaining this knowledge include – a) Customer interviews. .the system should make the user’s job more easy & interesting. b) early delivery. i) Customer communications.

At some later time in the development cycle it may be necessary to postpone or eliminate some system capabilities due to inconsistencies in the requirements. b) Performance aspects. And the best solution strategies may become apparent only after all the obvious solutions have been enumerated. There are several important reasons for stating product priorities. A solution strategy should include a priority list of product features. It’s a general statement of solution concerning the nature of possible solutions. etc. 4) Accuracy. d) Software aspects. technical bottlenecks or time and cost overruns. According to IEEE standards following are the desired quality attributes of a software product:1) Portability . 6) Often the best strategy is composite of ideas from several different approaches. 5) Solution strategies should be generated without regard for feasibility because it’s not possible to be both creative & critical at the same time.Requirement: They include – a) Functional aspects. During goal determination and requirement analysis the quality attributes of the software has to be taken in to consideration. 3) A strategy should be phrased to permit alternative approaches to product design. 3) Efficiency. 6) Robustness. . this provides justification for the recommended strategy and may prevent ill-considered revisions at some later date. 9) When recommending a solution strategy its extremely important to document the reasons for rejecting other strategies. Special efforts should be made in the process of developing meaningful requirement statements and methods that will be used to verify those statements. resources and technology using that strategy. They also specify development standards and quality assurance standards for both project process and product. Constraints prescribe the boundaries of the solution space. 7) Correctness. e) User interface. 4) Several strategies should be considered before one is adopted. (ii) Developing a Solution Strategy 1) A solution strategy is not a detailed solution plan. 5) Error. 7) The feasibility of each proposed solution strategy can be established by examining solution constraints. 2) Reliability. 8) A solution strategy is feasible if the project goals and requirements can be satisfied with in the constraints of available time. c) Hardware aspects. 2) A solution strategy should account for all external factors that are visible to the product users.

(a) Phased Life cycle model (b) Milestones.Documents & Reviews (c) The cost model (d) The Prototype life cyle model (e) Successive version models (a)Phased Life cycle model:   It is a simplest model.develop. It is widely known .deliver.(iii) Planning the Software Development Processes What is a Life cycle model?   Is a description of the sequence of activities carried out in an Software project and the relative order of these activites. which states that the phases are organized in a linear order.operate & maintain PROJECT PLAN=LIFECYCLE MODEL+PROJECT PARAMETERS There are100s of different lifecycle models to choose from. Define.test.

The requirement analysis activity is begun by collecting all relevant data regarding the product to be developed from the users of the product and from the customer through interviews and discussions. After all. This makes the SRS document understandable by the customer. the user requirements are systematically organized into a software requirement specification (SRS) document. it is important that the SRS document be reviewed and approved by the customer. During this activity. and the goals of implementation. The important components of this document are the functional requirements. the nonfunctional requirements. The SRS document is written in end-user terminology. the output data required to be produced by the system as well as various constraints on the behavior of the system.Analysis Phase: Planning – The main aim of the feasibility study activity is to determine whether it would be financially and technically feasible to develop the product. . the processing required to be carried out on these data. The feasibility study activity involves the analysis of the problem and collection of all relevant information relating to the product such as the different data items which would be input to the system. Requirement – The aim of the requirement analysis is to understand the exact requirements of the customer and to document them properly.

data structures and  Interaction between the modules and data structures.  Maintaining a record of design decisions and providing blue prints for the implementation phase The are two categories of Design a) Architectural Design – It involves  Identifying the software components. This stage is different from implementation. This process is highly influenced by the programming language under the implementation would be carried out.  Specifying the interconnection between the various components. The various activities that this phase includes are  Adaptation of existing code.  Modification of existing algorithms. b) Detailed Design – It is concerned with details of the implementation procedures to process the algorithms.  Decoupling and decomposing the software components into modules and conceptual data structures.Design Phase: This phase is concerned with  Identifying software components like functions. data streams and data stores.  Design of data representation and  Packaging of the software product. .  Specifying software structure.

. It is simple and easy to use. having such unchanging requirements is not possible. This model is suited to automate the existing manual system for which all requirements are known before the design starts. Integration Testing – It involves testing of integrating various modules and testing there overall performance due to their Integration. * Perfective Maintenance – Improving the implementation of the system. and enhancing the functionalities of the system according to customer’s requirements. 4. 2. In this stage various styles of programming can be followed like built-in and user defined data types. It also involves activities like debugging. 3. Maintenance Phase: – In this phase the activities include * Corrective Maintenance – Correcting errors that were not discovered during the product development phase. * Adaptive Maintenance – Adaptation of software to new processing environments. One of the most systematic methods for software development. Poor model for long and ongoing projects. All phases are clearly defined. It is often difficult for the customer to state all requirements explicitly. Testing Phase: It involves two kinds of activities 1. Disadvantages of Phased Life cycle model(Water Fall model) 1. Advantages of Phased Life cycle model (Water Fall model) 1. But for new system. 2. 6. 2. Poor model where requirements are at a moderate to high risk of changing.Implement Phase:    It involves the translation of the design specifications into source code. 7. Acceptance Testing – It involves planning and execution of various types of tests in order to demonstrate that the implemented software system satisfies the requirements stated in the requirements document. Real Projects rarely follow sequential model. this is one of the time tested models. secure type checking. High amount of risk and uncertainty. Being oldest. flexible scope rules. documentation and unit testing of the source code. exception handling. 5. Poor model for complex and object oriented projects. concurrency control etc. 3. 4.

(i)PFR -Product feasibility review Refer table 2. documents and reviews. . · This result is improved · Product quality · Increased programmer productivity. Milestones. · Better moralae among team members.6 PFR is held to determine the feasibility to project continuation. · The development process becomes more public activity and tangible. reviews points. · Ask the software products evolves through the development phase it is difficult for themanager and team members to determine resources extended to predict schedule delays extra. The outcome of review may be Termination of the project. documents and management sign offs can improve project visibility.Documents & Reviews: · Another view of the software lifecycle g software importance to the milestones.5 and 2. · Establishing milestones.(b).

. system definition 2.Software requirements reviews Is held to make sure the adequacy of 1. software requirements specification 4. preliminary user’s manual. project plan 3.Redirection of the proect. (ii) SRR . Or continuation of the project as planned. software verification plan 5.

.Software design specification: The design team creates this specification in two stages 1. 2. During the design phase . Architectural design document is created. A software verification review is held to evaluate the adequacy and completeness of the verification plan: To review the primilinary acceptance test plan(ATP) ATP includes Actual test cases Expected result. The acceptance plan is initiated during the design phase and completed during the implementation. Capabilities to be demonstrated by each test. Following that the preliminary design review is held then the detailed design specification is generated. Critical design review: Is held CDR is used determine the acceptablility of the software design specification. A preliminary design review(PDR) Is held to evaluate of adequacy of the architectural design insatisfying the SPS(software Product specification) Another reviews may be required to resolve problems under format sign offs is required of the project manager. To verify that the source code is complete and consistent with respect to the requirements and design specification. During the implementation phased: Source code is written. the software verification plan is expanned to include method: To verify that the design is complete and consistent with respect to the requirements. A format sign offs is required.

A project legancy is written: The legancy summarises the project a record of what went well and what went wrong during the project. It describes the results of all the reviews. Software verification summary is prepared. A final acceptance review is performed prior to product delivery’. Inspection are conducted during product evaluation to verify the completeness. Standard parcties in the following area Logical structure Coading style Data layout Comments Debugging Unit testing Source code reviews are held during implementation: This is to ensure that all the code has been reviewed by atleast one person other than programmer. audits. The users manual the installations and training plans and the software maintenance plans are completed during the implementation phase. consistency and suitability of the work products. Unit tested. and (C).inspection and test throughout the development cycle. The cost model:  This model is used specify the cost of performing various activities in a Software Project.Debug. provides .

maintenance procedure. design. In situations where phased model of analysis. design specification. verification plan. initialization and training instructions+ Cost of modifying and correcting system definition.· The cost of conducting a Software project is the sum of the cost involved in conducting each phase of the project. go/no go decisions points and the use of the prototypes. verification plan+the Cost of verifying the implementation is complete and consistent. messages.SRS. A prototype incorporates components of the actual model. · Cost of SRS= Cost of requirements definition and document + Cost of modifying system definition and project plan + Cost of verifying SRS is complete and consistence. There are several reasons for developing a prototype. · Cost of producing system definition and project plan =performing planning functions and preparing documents+ cost of verifying the system definition and project plan. reports and interactive dialogues for the customer. Important reason: It illustrates input data formats. The cost involved each phase includes: · The cost of performing the process · Preparing the products of the phase. · Cost of system test= Cost of planning and conducting the test+ Cost of modifying and correcting the source code+ Cost of verifying the test. project plan. To explore technical problems in the proposed system. · Cost of design= Cost of preparing design specification and test plan+ Cost of modifying and correcting the system definition. · Cost of product implementation= Cost of implementing documenting. (D) The Prototype life cyle model: Importance to the sources of product request. Prototype is a mock up or model of the Software product. project. SRS(Software requirement specification)+cost of verifying design. implementation is not appropriate. · Plus the cost of verifying the product of the present phase is complete and consistent with the previous phase. debugging and unit testing of source code+ Cost of user’s manual. · Cost of maintenance Software= Cost of performing product enhancement +making adaptation to new processing requirements and fixing bugs. .

(E) Successive version models Product development by the method of successive versions is an extension of prototyping. Version I is the prototype version of the software product. Versions one through N of the product or designed prior to any implementation activities. The dashed line indicates that implementation of the Ith version may reveal the need for further analysis send design before proceeding with implementation of version I+1 . In which an initial products skeleton is refined in to increasing the level of capabilities It illustrates the analysis phase followed by interactive design. implementation and assessment of successive version. The dashed line indicates that the assessment of version I may indicate the need for the further analysis before designing version I+1.

Product distribution .Publications .Support and maintenance Planning task identifiers:    External customers Internal product needs Conducts feasibility study. Development Task Identifiers:     design implements debugs test and integrate the product Service task provides:    Automated tools and computer resources for all other task.(IV) Planning an Organizational Structure: Contains various task The task include .Quality assurance .Product development . Performs configuration.Services .Planning .

Each functional group participate in each Project Ex: software development team members belongs to the development function similarly testing belong the testing function. Design the product 3. Preparing supporting document. This format involves a group of specialist personnel concerned only with that function. A design team and implementation team. 3. Maintenance task provides:   (i) Error connection Enhancement Project Structure: (a)Project format  It involves assuming a team of programmers. Test formatting and maintenance team.Publication task develops:     User’s manual Initialization instruction Principles of operation Supporting documents Quality assurance task provides   Independent evaluation of source code. 2. Publications prior to releasing them to customer. Each development project has a project manager concerned only with that Project The Project manager generates and reviews documents. Installs the product. (c)Matrix format In this format each of the functions has its own management team. An analysis team. Test it 5. Implement it 4. Conducts Project review 6. Support task:    Promotes the product. (b)Functional format: In this approach a different team of programmers perform each phase of the Project The work products pass from team to team as they evolved Functional format involves 3 teams 1. Product definition 2. .  Project team members do 1. Trainers user.

test plans etc. Team structure depends on the nature of the Project and the product Basic team structure includes Democratic team All team members participate in all decisions. Chief programmer teams: this teams are highly structured. design documents. Disadvantages: Weakening of individual and authority. Advantages: Opputunities for each team members to contribute to decision. Each team should be limited to not more than 5 or 17 members for effective coordination and communication.(ii)Programming team structure:  Every programming team must have an internal structure. surgeon Hierarchical team: In combines the aspects of the democratic team and chief programmer team. Democratic team this teams was first described as egoless team. Work is allocated to the individual programmer by the chief programmers. The chief programmer is assisted by an administrative program manager. Reduced communication paths. A program librarian maintains program listing. in a central location. the chief programmer design the product. A Democratic team differs from an egoless team is that one team members is designated as team leader and occupies the position of first among equals. To learn from one another Increased job satisfaction Non-threatening work environment. Advantages: Centralized decision making. . The chief programmer team: chief programmer is assisted and supported by other team members. Ex: doctors. Group leadership rotates from member to member based on the task to be performed and the differing abilities of the team members. This is because a team functions best when one individual is responsible for coordinating team activities and for making final decision. Implement critical parts of the product Makes all the major technical decision.

Losing a good programmer. task. The Project needed assigns. Promotion of the best programmer have the two negative effects. This structure limits the number of communication paths in the Project Disadvantages: The most technical competent programmer tends to be promoted in to management positions.Hierarchical team structure: This structure occupies a middle position between the extremes of Democratic teams and chief programmer teams. reviews. Creating a poor manager. . balances the word load the participate in technical activities. detects problem areas. attends.

Master your semester with Scribd & The New York Times

Special offer for students: Only $4.99/month.

Master your semester with Scribd & The New York Times

Cancel anytime.