Software Engineering

Saturday, 23 July 2011

FSE Module 5 - Software Implementation / Coding

CSEB233 Fundamental of SE , Module 5 Software Implementation / Coding.

 
What is Software construction ?
Software Construction is generally focus at coding, debugging, some detailed design and some testing. Quality of construction substantially affects the quality of the software.

 
Why is software construction important?
This is because construction is the pivotal activity in software development. With a focus on construction, there is a great potential for the average programmer’s productivity to improve.

 
Good programming practices are ?
  • Start with a good design.Update the design documents regularly. Create additional design documents before adding major new features or functionality.
  • The program under development should be at all times functioning. The development process consists of adding new functionality without breaking existing functionality.
  • Work has to be divided into small incremental steps that can be typically accomplished and code-reviewed in one day. Even large-scale rewrites should be made incremental.
  • Every line of code written or modified undergoes peer review. The smallest team must contain at least two programmers so that they can code-review each other's changes.
  • Always attempt to work top-down

 
Defensive Progamming
Defensive programming is when the programmer makes necessary assumptions and creates code that anticipates potential problems and specification changes.

 
Software Reuse
In most engineering disciplines, systems are designed by composing existing components that have been used in other systems.

 
Reuse-based software engineering
  • Application system reuse
  • Component reuse
  • Object and function reuse

 
What are the requirements for Reuse ?
  • It must be possible to find appropriate reusable components.
  • The reuser of the component must be confident that the components will be reliable and will behave as specified.
  • The components must be documented so that they can be understood and, where appropriate, modified.

 
Why do we reuse ? What are the benefits of reuse ?
  • Increased dependability
  • Reduced process risk
  • Effective use of specialists
  • Standards compliance
  • Accelerated development

 
Problems occurs in Reuse ?
  • Increased costs
  • Lack of CASE tool support
  • Not-invented-here syndrome
  • Maintaining a component library can be expensive
  • Finding and adapting reusable components

Personally , coding principles should not be included in Module 5 because coding principles already mentioned in Module 4 and there is no need to repeat since student still have fresh memory about coding principles. This will be waste of time for lecturer to re-teach.

The best method used to study this Module is to understand the meaning of each main topic but not to memorise. Memorise will be harder than to understand the concept since there are too much of theories taught in Module 5. Understand and re-write the meaning of theories is much more easier.

Teh Kok Harng
IS085779

Wednesday, 6 July 2011

FSE Module 4 - Software Design

CSEB233 Fundamental of SE , Module 4 Software Design


What is design?

Design creates a representation or model of the software.




Design principles

-the design should not suffer from ‘tunnel’ vision. (Tunnel vision)

-the design should be traceable to the analysis model. (Traceable)

-design should not reinvent the wheel. (Reinvent the wheel)

-design should exhibit uniformity and integration. (Uniform and integration)




Design concept (remember 5 -MARRD)

-modularity(software is divided into several components)

-aspects(deigns expectation from the users)

-refactoring(check for unused design elements)

-design classes(DFD and ERD diagram)

-refinement(make a procedure into a more specific steps)




Design model elements (DACI)

-Data/class design

Class diagram transformed into the design class realization and the data structure required implementing the software.

-Architectural design

Information about the application domain for the software to be built.

-Interface design

Software communicates with the system

-Component-level design

Defines the data structures,algorithms,interface characteristics,and communication mechanism allocated to each software component or module.




Design support tool

CASE Tool




Design evaluation

-Design quality is people-sensitive

-Design quality is change –specific

-Design quality is unpredictable




Suggestion

-enhance more activities that can make us faster to remember.

I think this chapter every slides explanation is important to us in order for us to continue other chapter.

I think mini quiz after the chapter will be an effective way although many people dislike it.


Ee Eu Gin
IS085696

FSE Module 3 - Requirements Engineering Part 2

CSEB233 Fundamental of SE , Module 3 Requirements Engineering Part 2
Requirement/analysis model
A graphical representation of business processes, the problems to be solved, and the new proposed product (software).

Objectives :
-to describe software requirements
-to establish a basis for the creation of a software design

Requirement analysis model
Categorizes into two main level of details
1. Context modeling
2. Technical modeling

Approach for technical modeling
1. Structure analysis
2. Object-oriented analysis

Approach
-scenario –based(use case)
-class based


-behavioral
1. make a list of the different states of a system
2. indicate how the system makes a transition from one state t another

State diagram
-the state of each class as the system performs its function and as observed from the outside as the sysyem performs its function.


Sequence diagram

In this chapter,rules of thumb topic just a further studies.As for requirements modeling principle, if we know the objective of the requirement/analysis model, we will automatically understood it as well.
I will suggest that ask the students question at the end of the class and for those who can really answer ti correctly, give them bonus marks.

Pavithran
IS086067

Thursday, 30 June 2011

FSE Module 3 - Requirements Engineering Part 1

CSEB233 Fundamental of SE , Module 3 Requirements Engineering Part 1

What are requirements?
A condition needed by a user to achieve an objective.

Types of requiremnents
-functional requirements
1.not include quality statement such as fast ,efficient, usable, reliable
2. tell users how the system should react to certain inputs.
-non-functional requirements
1. quality attributes such as security, safety, performance
2. quality characteristic of the software to develop the software

Why Requirement important?
-Cause the development cost, time, effort and quality of the porduct.
-Important step to determine the overall of the software product.

Requirement process
1.RE elicitation (discover requirements from the stakeholders)
-understanding application domain
-understanding problem to be solved
-understanding business processes
-by using joint application design(JAD),interviews and questionaires

2.RE analysis and negotiation
-interaction matrix to identify conflicts and overlaps
-Discussion session in meeting to effectively to negotiate and solve conflicts

3.RE specification(to build the requirement documents)
Attributes –correct,consistent, complete(3 S)

4.RE verification and validation(check the product meets its specification)
-deskcheck
-walkthrough
-inspection
-checklist

5.RE management(managing changes to requirements)
-prevents unauthorised destructive changes to the requirements
-preserves the revision to requirements document
-prevent simultaneous updates of requirements documents

I think NFRs: qualities is not important because it does not really related to requirement.The groundwork and tracking requirements status are just further explanation about RE, therefore no major importances in it.

I would like to suggest to do a simple and creative mind map and pass up on that particular day as well and prepare prizes to the best creative mind map.

Pavithran
IS086067

Friday, 24 June 2011

FSE Module 2 - Software Processes

Summarization of Module 2.
CSEB233 Fundamental of SE , Module 2 Software Processes.
Software process – a collection of work activities,actions,tasks,which are performed when software is to be created.

Framework activities –communicatioin , planning , modelling , construction , and deployment

Process flow- Describe how the framework activities actions and tasks occurs in each activity.
Exp: Linear, iterative , parallel , evolutionary

Prescriptive process models- waterfall , incremental , evolutionary , concurrent

Waterfall model
-Represent a linear process flow from commucication through deployment
-a.k.a classic SDLC

Incremental model
-The development and delivery is broken down into incremental with each increment delivering part of the required functionality.
-combines elements of linear and parallel process flow

Evolutionary model
Prototyping
-help better understand what it Is to built when requirements are fuzzy.
Spiral
-combines the iterative nature of prototyping with the systematic aspcts of waterfall model.

Concurrent model
-combines iterative and parallel process model
-all SE activities exits concurrently but reside in different states

Specialised process models
-formal methods
-unified process
-agile process
-team process model
-personal process model
-component based software development(CBSD)
-aspect-oriented software development (AOSD)

Selecting a process model
-Characteristic of the product
-characteristic of the project
-characteristic of the problems to be solved
-project enviroment in which the software team works

I think we should not include process pattern, the extreme programming,the XP activities topics.

I think we should have a mini prize by our lecturer to power up our effort after a certain activity.

Ee Eu Gin
IS085696

Friday, 17 June 2011

FSE Module 1 - Introduction to Software Engineering

In course CSEB233 Fundamental of Software Engineering , I learnt about introduction and definition of SE. First of all is essential for us to understand what is software.

(1) instructions (computer programs) that when executed provide desired features, function, and performance.
(2) data structures that enable the programs to adequately manipulate information.
(3) documentation that describes the operation and use of the programs.

Another important part in Module 1 is Software Application Domain. As a student , I am sure we will know better about software once we have done the Software Application Domain Matrix given in slides which software has been divided into 7 categories
  1. System software
  2. Application software
  3. Engineering/scientific software
  4. Embedded software
  5. Product-line software
  6. Web applications (WebApps)
  7. AI software

Polya suggests and 7 Hooker’s General SE Principles are best study materials in this module. This is because the theories given us a wider view yet meaningful.

Personally , I would suggest that Software Myths taken out from this module since it has no relation with the previous topic which is Hooker’s General SE Principles. Besides , Software Myths are only erroneous beliefs about software which has no prove even it does realiable but not good enough.

There are 2 methods I discovered in learning Module 1 effectively. First , we have to understand Software Application Domain's characteristic but not memorising it.Understanding is more realiable then to memorise it and without understanding to characteristic it is hard to differentiate them.

Second , study 7 Hooker’s General SE Principles by memorising the key words. And Polya suggests too have key words in it for us to memorise easily.

By :Teh Kok Harng
      IS085779

Wednesday, 15 June 2011

Group Members' Details


Here is our group photo.
( From left ) Pavithran , Kok Harng , Eugin

Teh Kok Harng
IS085779
Notes : I'm coming from Batu Caves and study in Uniten since foundation 2009/2010 intake.

Pavithran
IS086067
Notes : Pavithran from Minlon which is nearby Uniten Kajang. Pavithran studied in Uniten after he finished his Form 6 study and started his Degree in IS since 2010/2011 intake.

Ee Eu Gin
IS085696
Notes : Eugin is from Klang and he is my coursemate since foundation. He is taking Degree in IS too. We both know each other since Foundation 2009/2010 intake.
By Software Mechanical group