| Welcome to SENG 321Spring 2016
 
 
                | 
                    Would you tell me please, which way I ought to go from here?
                      That depends a good deal on where you want to get to, said the cat.
                      I don't much care where, said Alice.
                      Then it doesn't matter which way you go, said the cat.                       Lewis Carroll, Alice in Wonderland |  Course Description SENG 321 combines a range of topics integral to the analysis of requirements, design,   implementation, and testing of a medium-scale software system with the practical   experience of implementing such a project as a member of a software engineering   team. Introduces requirements engineering, specifications, software life cycle   models and formal methods for requirements engineering. Requirements engineering is a critical yet very difficult
              part of software development. Project success is ultimately
              measured against meeting the client requirements. This course is
              designed to address the issues of requirements engineering in software development
              projects. It provides the
              students with opportunities to learn and apply techniques for requirements
              elicitation, analysis and modelling, as well as risk management,
              formal specification, negotiation and decision making.  Project-based
              group work involves students in roles of client as well as  system analyst/designer for
              two different
              software projects. For each project the designers, in collaboration with
              clients, define, specify and negotiate requirements, and
              
              validate the requirements through prototype design
              and presentations in class. Learning Objectives
              Understand the importance of Requirements Engineering Understand the complexity of software-intensive systems and inherent   difficulties of Requirements Engineering Learn and apply the techniques of requirements elicitation, analysis,   negotiation, modeling and validation, as well as feasibility studies, risk   management and formal specification Uunderstand the role of iterative approaches   for adequate requirements management Learn and apply group communication and teamwork techniques Learn and apply techniques for client-developer relationship management Become familiar with different approaches to software process and in   particular the Rational Unified Process                Topics 
            Requirements elicitation Requirements analysis and modeling Requirements and the development life cycle Risk management Feasibility studies Verification and validation Formal specification techniques Prioritization, negotiation and decision making Software evolution Client-developer relationships  Marking Scheme 
         
      
        | Graded work | Grade percentage | Remarks |  
        | Group Project | 40% | Negotiation builds a team as well as a set of requirements. Barry Boehm  |  
        |  Class participation, teamwork, and activity logs | 5% | Take full advantage of  this opportunity to perfect your communication skills! |  
        | 3 Quizzes | 6% | In labs to monitor course progress |  
        | Midterm Exam | 14% | Fri, Feb 26, 2016 in class |  
        | Final Exam | 35% | Sat, Apr 16 19:00-22:00ECS 125
 
 |  |