Monday, 25 July 2011

Software Engineering Ethics In A Digital World

In ethics-aware engineering, ethical considerations are taken into account across software development life cycle and are integral part of risk assessment and acceptance criteria. The internet became pervasive due to wide spread of broadband & the ubiquity due to proliferation of mobile devices. This raised the issue of social networking such as Facebook, twitter, MySpace, online games (World of war craft)  has blurred the boundary between online world & physical world. This digital world proves accessibility of social interaction but also raises several ethical issues like privacy, monitoring, data protection, Cyber Crime, whereas this has been called the dual-use dilemma.
Google maps technology stand argumentative between benefiting people in planning holidays and house hunting while its invasion of privacy and it aid terrorists, thieves in finding their targets easily. Chat rooms such as IRC & MSN which uses peer 2 peer networks allow geographically distant friends to interact, on other hand a place for terrorist to interact from all over the world and pedophiles to take place against kids and public in an amazing way of leading to illegal sexual content over chat rooms. Facebook is the most surprising in ethical issue its undoubtedly a boon to many, assisting them to make new friends and interact with family/friends from all over the world but upon researches its proven that most of students who use Facebook tend to bring lower grade compares to those who don’t use it, Blame goes for developers when designing it they didn’t think well upon the privacy and harms of it.
Ethical Challenges For Software Engineers has highlighted some examples like communication data bill will require ISPs to log all emails and websites access for all users for up to a year where as the key motivation behind this to trace the terrorism activities and illegal use of chat rooms  and protection of privacy and to protect copyrights but cutting down the internet after warning on that users who miss use and miss lead the internet  because Software engineers would have thought more of right of privacy and the ethical side of an issue before letting users abuse it so developers should be more aware of it !!
Mentioning about if software engineering and ethics mix, obviously developers must strive for ethics path when developing something by thinking of its complexity and what practical challenges can cause and the accountability of it. One of the important paths for developers is thinking of stakeholders for instance who the stakeholders are and identifying their interest and how their system will be used. Some issues can be addressed by better design, some by better testing, some by legislation and some by education of users so developers/soft Eng play a big role in achieving so.
Article source: Awais Rashid, John Weckert, Richard Lucas

Wednesday, 15 June 2011

Assignment 1 - Task 4

Software Myths

1.Erroneous beliefs about software and the process that is used to build it.

2.Misleading attitudes that have caused serious problems for managers and pactitioners.


Classifications of software myths

Management Myths
Customer Myths
Practitioner Myths

Management Myth

Myth - We already have a book that's full of standards and procedures for building software. Won't that provide my people with everything they need to know.
Reality - The book of standards may exist, but is it used?Are Practitioners' aware of its exestence?Does it reflect modern SE practices?Is it complete?Is it adaptable?

Customer Myth

Myth - Software requirement continually change, but change can be easily accommodated because software is flexible.
Reality - The impact of change varies with the time at which it is introduced. The cost of impact of changes in early stage of software project is relative small.However, changes introduced at a later development stage may requires a lot of resources and major design modification.

Partitioner Myth

Myth - "Once we write the program and get it work, our job is done."
Reality - Some once said the "the sooner you begin 'writing code', the longer it'll take youto get done".

Sunday, 12 June 2011

Assignment 1 - Task 3

Note: Visitors need to double click in-able to view the table wide & clear !

Summary :
According to jobstreet.com the jobs illustrated in the table above are  the most requested jobs related to software engineering .All companies require atleast 2 years of experience.The salary range is from RM2000 to RM7000.

Saturday, 11 June 2011

Assignment 1 - Task 2 ( Module 2 )

THE PROCESS MODELS

*Waterfall Model:
characteristics
strengths
weaknesses
applicability
*It suggests a systematic, sequential approach to SE, staring from requirements specification going through planning, modeling, construction, testing, deployment and support of the completed system.
*Each major activity is marked by milestones and deliverables (artifacts i.e. documents).

*Simple and easy to use/explain to customers.
*The staged development cycle enforces discipline: every phase has a defined start and end point, and progress can be conclusively identified (through the use of milestones)

* Real projects rarely follow the linear flow that the model proposes. Although iteration is indirectly allowed, changes are costly, involve significant rework and can cause confusion to project team and involve.
*The model requires the customer to state all requirements explicitly, which is often very difficult to achieve.
The working software will not available until late in the project, which can be disastrous for late discovery of major defects.
Leads to “blocking states” in which some project team
* When requirements are well understood and unlikely to change radically during system development (e.g.:  in a well-defined enhancement to an existing system).
*When software development technologies and tools are well known.
*The work tasks in the project are to proceed to completion in a linear manner.



 *Incremental Model:
characteristics
strengths
weaknesses
applicability
*Easy the traumatic effect introducing completely new system all at once.
*Combine elements of both linear and parallel process flow.
*Highest priority requirements need to be settle early
*Early increment can be implemented with few people.
*Provide clients flexibility in making their decision.
*New project can be stopped at any time after the first cycle.
*The project may be unfinished with the cost and the schedule overruns.
*Problem may arise pertaining to system architecture.
*The basic requirement is address but supplementary features remain undelivered.
*Core product is well received and additional staff can be added to implement.
*Useful when insufficient can be planned to manage technical risk.
*Essential part of the rational unified process

*Spiral Model:

characteristics
strengths
weaknesses
applicability
*A hybrid model that support process iteration.
*Represented as spiral, each loop in the spiral representing a process phase.
*Risk is explicitly taken into consideration.

*Risk reduction mechanisms are in place.
*Supports iteration and reflects real-world practices.
*Systematic approach.

*Hard to estimate time & budget at earlier stage.
*Need specific expertise in risk evaluation and reduction for analysis.
*Applicable only to large systems because it involve high costs in implementation.

*Internal development of large systems.
*For smaller projects, the concept of agile software development is becoming a viable alternative.
*Development of space exploration.





*Prototype model:

Characteristic
Strengths
Weaknesses
Applicability
    * A prototype (early estimation of final software product) is built for user to test by trying them out, as oppose from user just interpreting the design based from description.
          *The prototype will be rebuilt again for improvement based on user feedback.
         *This process will be done several times until an acceptable prototype is achieved to produce complete software product.
       * Can ensure that the developer, user and customer have a common understanding of what is needed and what is proposed.
         * Can be used by users to describe and proved requirements that developers have not considered.
        * Prevents misunderstanding between developer, user and customer that might occur particularly in the requirement analysis phase.
         *The focus on a limited prototype can distract developers from properly analyzing the complete project.
         * Developers have the tendency to build complicated prototype (that in the end they have to throw it away) and thus results in lengthy development time.
        *Using prototype model is very costly because developers need to build many prototypes before right prototype is attained.
       * When the requirements are unclear.
         *Most beneficial to system that will have many interaction with users.
         * Especially good for designing human-computer interface


*Extreme Programming:
characteristics
strengths
weaknesses
applicability
*Pair programming - Ensures quality code. One programmer is thinking whether the approach will work, about testing, or ways to simplify the code while the other programmer writes the code.
*Simple design - Keep the design as simple as possible for the moment and don't add features that are not needed for current functionality.
*Small releases - There is a short time between versions
*Emphasis on teamwork and communication: As with the TSP, this is very important in improving the performance of just about every software team.
*Emphasis on customer involvement: A major help to projects where it can be applied.
  *Simple design: Though obvious, worth stressing at every opportunity
*As automated acceptance tests rather than specification documents leads to lack of necessary documentation.
*Can be very inefficient if the requirements for one area of code change through various iterations, the same programming may need to be done several times over.
  *Only works with senior-level developers (no chance for junior worker to gain experience).
*Used in Project Management
*Used in XP and Web Development
*Used for situations when customers may not have a firm idea of what the system should look like.


Sunday, 29 May 2011

Assignment 1 - Task 1

 
 
Name : Ahmad Fehmi Taha
ID : SW084973
Email: ahmadtaha90@hotmail.com
Education : A software engineering student
hobbies : Soccer & swimming
Talents : Acts as a search engine
Ambition: Creating a very unique Software that benefits disabled people























Name : Abdulkareem Al Rammah
ID:IS084724
Email: Kimo3taz@hotmail.com
About me: Education : an IT student and this my second year
Hobby: I like playing football as well as video games .
Ambition : my ambition is to be either a Microsoft corporation worker or an Apple corporation worker .
And I always say :be honest to be trusted ...!




Name : Aldossari Mohammad 
ID : SN086256
Email : aldossari.m@hotmail.com
Education : A system and networking student 
Hobbies : Swimming & diving 










Name: Saleh Hussian Baharith
Email : saleh.h.ba7arith@hotmail.com
Education : An IS student
Colours : My favourite colour is yellow & blue
likeness : love food & especially arabic food
Addiction : love to travel so much