بنك الأسئلة

advertisement
‫بنك األسئلة لإلجابة قبل االختبار الفصلي‬
True (√) or False (X)
 Software engineering is about managing all the sources of complexity to produce
effective software
 Engineering is the application of scientific principles and methods to the
construction of useful structures & machines
 Software is malleable
 Software construction is human-intensive
 Software is intangible and generally invisible
 Software problems are unprecedentedly complex
 Software directly depends upon the hardware
 Software solutions require unusual rigor
 Software “state” means behaviors can depend on history.
 Software has discontinuous operational nature
Cite three goals of software engineering
Software engineers should:
 adopt a systematic and organised approach to all aspects of software development.
 Understand and communicate processes for improved software development within
their organization
 Be effective team members and/or leaders.
 Can be very technical or more managerial depending on organizational need.
Use appropriate tools and techniques depending on
 the problem to be solved,
 the development constraints and
 the resources available
What is the difference between software engineering and computer science?
What is the difference between software engineering and system engineering?
Software programming (SP) or Software engineering (SE)
 Single developer
 “Toy” applications
 Short lifespan
 Single or few stakeholders
 One-of-a-kind systems
 Built from scratch
 Minimal maintenance
 Teams of developers with multiple roles
 Complex systems
 Indefinite lifespan
 Numerous stakeholders
 System families
 Reuse to amortize costs
 Maintenance accounts for 60%-80% of overall development costs
Give the difference between Product vs. Process Qualities
Tri Software Development Stages
 Requirements Analysis & Specification
 Conceptual/System/Architectural Design
 Detailed/Program Design
 Implementation/Coding
 Unit & Integration Testing
 System Testing/Validation
 System Delivery/Deployment
 Maintenance
Cite at least three Software Lifecycle Models. Models those cited.
When we choose the evolutionary development
Tri the Process stages of Component-based software engineering
 Component analysis;
 Requirements modification;
 System design with reuse;
 Development and integration.
Cite the definition of :




Extreme programming
Software specification
Software design
Implementation
Cite at least four Design process activities :
Give the difference between Architecture vs. Design
Analysis (A) or Testing (T)
–
Static
–
“Science”
–
Formal verification
–
Informal reviews and walkthroughs
–
Dynamic
–
“Engineering”
–
White box vs. black box
–
Structural vs. behavioral
–
Issues of test adequacy
Cite the different Testing stages
Cite the Difficulties of Maintenance & Evolution of SE
‫للحفظ‬
Definition of Critical Attributes:
•
Maintainability - possible to evolve software to meet changing needs
•
Dependability - includes range of characteristics: reliability, security and safety;
should not cause physical or economic damage in the event of system failure
•
Efficiency - should not make wasteful use of system resources such as memory and
process cycles
•
Usability - should have appropriate user interface and adequate documentation
External qualities are visible to the user
•
reliability, usability, efficiency (maybe), robustness, scalability
Internal qualities are the concern of developers
•
they help developers achieve external qualities
•
verifiability, maintainability, extensibility, evolvability, adaptability,
portability, testability, reusability
Process Attributes:
•
Understandability - To what extent is the process explicitly defined and how easy is
it to understand?
•
Visibility - Do the process activities culminate in clear results so that the progress of
the process is externally visible?
•
Supportability - To what extent can the process activities be supported by CASE
tools?
•
Acceptability - acceptable and usable by engineers?
•
Reliability - Is the process designed in such a way that process errors are avoided or
trapped before they result in product errors?
•
Robustness - Can the process continue in spite of unexpected problems?
•
Maintainability - Can the process evolve to reflect changing organizational
requirements or identified process improvements?
•
Rapidity - How fast can the process of delivering a system from given specification
be completed?
Download