Friday, July 17, 2015

1.01. Accept full responsibility for their own work.



we get full responsibility for our work in this project. specially about the information we used. In this project we access to all the students private information, teacher private information and some valuable information about the school. we ensure with each other we didn't loose this data or information from our hands. Time to delivery is another responsible work we got. Before start the project we all discuss and create a project plan. Then we divide the work load among us. Every weekend we gather and discuss the project progress and difficulties we faced in developing cycle. If the any one goes out of the timeline others help him or her to comes back to the timeline. All the members guarantee they developed components was quality attributes. we use MVC(model- view- controller) as a design architectural pattern, java as a programming language, singleton as a design pattern. So all the team members have a clear idea about using technologies, to develop the project. If anyone doesn't know about using technologies they are responsibility to study about those things before the start the project. Every member gets the full responsible for their are own work.
2.02. Not knowingly use software that is obtained or retained either illegally or unethically.

 All the software and other utilities used to develop our project are open source. Before we use software's to our project we find out is this software's is free - open source, do we want to get any approve before we use this software's and do we need any kind of certification from theorize company or person, we concern about these stapes. we used java as a our programming language. Sun released much of Java as free and open source software, under the terms of the GNU General Public License. OpenJDK (Open Java Development Kit) is a free and open source implementation of the Java programming language. Netbeans use as a IDE (integrated development environment) for java development. The NetBeans Platform and IDE are free for commercial and non- commercial use, source code to both are available to anyone to reuse as they see fit under the terms of the license. we MQSQL as Relational Database Management System (RDBMS) that uses Structured Query Language (SQL). we use MYSQL to adding, accessing and managing content in a database. It is open-source RDBMS. This are the basic utilities we are useing to develop our project. So we are ensure that not knowingly use software that is obtained or retained either illegally or unethically.
3.02. Ensure proper and achievable goals and objectives for any project on which they work or propose.

After the accept the project idea, we set a achievable goal for our project. Goal is we finish our project development with in two week with higher quality. Higher quality mean, ensure that we meet the non-functional requirements. So we decided all the work among us. To ensure that non-functional requirements we use quality tatties. Availability, Security, usability are some non functional requirements. To achieve non-functional requirements of the system we use four methods fault detection, recovery preparation and repair, recovery reintroduction and prevention.

3.04. Ensure that they are qualified for any project on which they work or propose to work by an appropriate combination of education and training, and experience.

we have enough working experience and theoretically knowledge to successfully finish this project. we use java as a our programming language. we study about java programming language in university. so we have clear idea about object oriented concepts and other special areas in java programming language. I did more three main projects using java language. And we use MYSQL has a DBMS(Data Base Management System). In 1st year I study about MYSQL. So that helps me to finish this successfully. Practically I worked with DBMS. That practical knowledge and experience useful to me.

3.14. Maintain the integrity of data, being sensitive to outdated or flawed occurrences.


 In maintains we ensure integrity of data. Before the do new updates or upgrades to the current system, we test several times that newly add part or component. what happens to dependent components, if the system works correctly, about non functional requirements and etc about these things we conceder before the adding newly develop part or component to the system.

  
4.03. Maintain professional objectivity with respect to any software or related documents they are asked to evaluate.


we maintain a professional standard in software engineering. There are several standards in software engineering. Creating documents and developing  stages we maintain the standards. Maintaining standards any client can easy understand the our project and if one with out knowledge about IT  also can get clear idea about our project looking at only the documents. If some how we enable to maintain the project in the future, some one have idea about IT can do the maintains because of our professional standards. we adopt to standards because it is a good practice in software engineering and as a safety net. 

5.04. Assign work only after taking into account appropriate contributions of education and experience tempered with a desire to further that education and experience.


 After the we accepts the project idea to do, we gather and talk about how do this this project. In the first steps we want to identify the every and each member skills. To do that we use skills vs knowledge allocation diagram. All the members marks there skills and knowledge areas. Using that diagram all the work were separated and categorized into groups like requirement gathering, system design, developing, testing and etc. It will make work easy for all of them and work will be faster as a result of that. So we assign the development activities to the people who are good at programming and requirement gathering to people who have good analytically skills.

5.01 Ensure good management for any project on which they work, including effective procedures for promotion of quality and reduction of risk. 




Before we stat the project we do some kind of activities to motivate our group members and get full attention for the project. one of thing is, give chance to team members to learn new technologies. we’re happiest when we’re learning new skills or challenging old ones. Realistic deadlines are a huge part of being set up to succeed.Building something great is fun, but it’s much more fun when someone’s. Most developers enjoy hearing praise and receiving recognition for hard work. Clear the clarified the goals and objectives well. If the team members don't have clear idea about the goals and objectives, hard to accomplish that and we give clear idea to each member team expect this kind of effort.We show all the team members respect for each other and believe what they do.                                                                                                                   

6.03. Extend software engineering knowledge by appropriate participation in professional organizations, meetings and publications.

All the members of our group are members of IEEE, Computer Society of University of Colombo, Internet Society Sri Lanka and other IT related societies. They also take part in annual coding competition conducted by IEEE. They attend to sessions organized by CompSoc to improve their knowledge in Software Engineering filed. Also we participate to sessions, workshops, functions(Google DevFest, Microsoft Champs, Firefox launch, Google IO and atc) and etc organized by other IT related companies(Google, Microsoft, Firefox, WSO2, MIT and etc) out side the university. Addition to those Hackathon competitions and some innovation compositions was also use to improve our skills and knowledge.

6.08. Take responsibility for detecting, correcting, and reporting errors in software and associated documents on which they work.

After the developing one component we do the unite testing to that component. If any mistake we don't handle a error or errors we can identify that error or errors during the unite testing period. So we can easily identify and correct the error before the start other components developing. After the developing all the project components we testing whole application. System testing, alpha testing and etc we do to clarified our application was bugs free before the delivery final version to client.

After the starting development process we keep up the recoding all the detecting errors in document. In recoding we can easy find out where is the problem occur and correct easy. If that component developer could correct that error occurs in his or her part, another developer can do it because we documentation that error.

Documenting errors detecting during the project, we can use that documentation for another project. So this kind of experiences can use to improve our other project do effectively and efficiently.

 


7.01. Encourage colleagues to adhere to this Code. 

 
 
Developing the project for Weeraketiya central collage each of the every team member made sure that every other colleague follow the code of ethic. Some times we got difficulties to do all the things according to the code of ethics. Because of this is volunteer project. But some how we managed that kind of situations.

To ensure that each and every member adhere to this ‘Code of Conduct’ by following the codes it provides. first we study about what is code of conduct, how we achieve or do according to code of conduct, understand the value of following code of conduct. Then we talk with each other and ensure about what we self study. Subsequently what we expect to radius our wrong doings and faults from happening or avoid having inappropriate outcomes through the functionalists of the site.

When we get problems with regard to our project we work on, we as team had group discussions. Development process the code of ethics done a great role assisting us, educating us and remembering us what we ought and ought not to do. Codes of conduct show the right way for everyone to the right way of doing things.

7.02. Assist colleagues in professional development.

We held a some group meeting to discuss about project development process and problems had in the going to developing the project. If some group member had a problem could not solve or some difficulties had about theory parts, other team members give answers if they know. If other group members don't know about that area, we get some help from outsiders who has specified knowledge and experience about that area or get help from other resources like tutorials, videos, stackoverflw and etc.  Also members who had adequate knowledge in Software Engineering conducted small sessions to others to teach them about standards used in projects..  

8.01. Further their knowledge of developments in the analysis, specification, design, development, maintenance and testing of software and related documents, together with the management of the development process.


As it is conveyed in the code we will improve our knowledge in the every positions in the software life cycle such as requirement gathering, analyzing, designing, development, maintenance and testing with related documentation also the management the project. Following code of conduct in order to improve self knowledge and the self experience. 

In requirement gathering stage we have a good communicate between Weeraketiya central college.  So it was not much difficult task to identify requirements correctly.
we have to make sure requirements specifications were analyzed and understood correctly for go to the design stage. We had several meetings between client and the team members towards identifying the requirements accurately.

In design stage we had some difficulties to design the software. How to we are going to develop the project.

Implementation of the components are helpful in strengthening our experience in programming and in that stage we can learn new methodologies, coding practices. we can make sure the final product meet with the exact requirements.  

Time management is one of the major experience which we had through this project. Although there was no documentation involved in the process we as a team had an excessive chance to further our knowledge in many extents.

Wednesday, July 15, 2015



Brief Introduction for Code of Ethics

The Software Engineering Code of Ethics and Professional Practice is the international standard for professional software development and ethical responsibility. It was recommended by the IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices. It was jointly approved by the ACM and the IEEE-CS as the standard for teaching and practicing software engineering.

Preamble

Computers have a central and growing role in commerce, industry, government, medicine, education, entertainment and society at large. Software engineers are those who contribute by directly to develop, design, testing and etc of software systems. Software engineers can do good or cause harm, to enable others to do good or cause harm, or to influence others to do good or cause harm because of there are rolls in software developing. To ensure, as much as possible, that their efforts will be used for good, software engineers must commit themselves to making software engineering a beneficial and respected profession. The Code contains eight Principles related to the behavior of and decisions made by professional software engineers, including practitioners, educators, managers, supervisors and policymakers. The Principles identify the ethically responsible relationships in which individuals, groups, and organizations participate and the primary obligations within these relationships. The Clauses of each Principle are illustrations of some of the obligations included in these relationships. These obligations are founded in the software engineer’s humanity, in special care owed to people affected by the work of software engineers, and the unique elements of the practice of software engineering. The Code prescribes these as obligations of anyone claiming to be or aspiring to be a software engineer. 
 

Principles

Principle 1: Public Software engineers shall act consistently with the public interest.

Principle 2: Client & Employee Software engineers shall act in a manner that is in the best interests of their client and employer, consistent with the public interest.

Principle 3: Product Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

Principle 4: Judgement Software engineers shall maintain integrity and independence in their professional judgement.

Principle 5: Management Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

Principle 6: Profession Software engineers shall advance the integrity and reputation of the profession consistent with the public interest. 
Principle 7: Colleagues Software engineers shall be fair to and supportive of their colleagues.
Principle 8: Self Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

How we apply Code of ethics to Student Management System project.


This project we developed for the Weeraketiya central college to manage there students details properly. This describes how we manged to overcome the difficulties we faced and how we overcame those difficulties.

Brief introduction about our project & about me


Before we decide or select a project, all the group members gather and discuss about how we are going to help for society using our knowledge and skills we had. Team members give different different project ideas but we finally selected one project idea. It was Student Management System System for weeraketiya central collage.  Weeraketiya central collage was situated in Hambantota District. More than 4000 students studied in that school and It was one of major school in that area. After we selected our project idea, we decide to go to that school and discuss about our project idea with authorities.  They agreed with the project ides. So we decided to develop that project for Weeraketiya school.  

We are from University of Colombo School of Computing(UCSC)

I am R.K.J.P.Rathnayake
12001201
2012CS120

1.03. Approve software only if they have a well-founded belief that it is safe, meets specifications, passes appropriate tests, and does not diminish quality of life, diminish privacy or harm the environment. The ultimate effect of the work should be to the public good.

Before we delivery our application to Weeraketiya school, we done several things to ensure that our application was what they want. During the developing we done unite testing. Doing unit testing we can improve time-to-deliver, quality, and flexibility of the software. The key idea is that each piece of code needs its own tests and the best person to test that code is the developer working on it. Enabling developers to test their code as they write it ensures that quality is built in from the start. Having unit tests makes it easier and safer to modify the code because the tests document and protect the intended behavior and will instantly catch any regressions. Next we did integration test. Main purpose was to done this detect any inconsistencies between the software units that are integrated together. 
After the we completed integration testing successfully, we design to do system testing. It focuses to test whole the system. Using system testing results we can verify the functional requirements and technical requirements meets successfully. Also focus about security in the application. because we are working with very sensitive data like student's private information, teacher's private information and etc. So we give full guaranty about data security. finally pass the approval test. we proof our application does not diminish quality of life, diminish privacy or harm the environment. our final effect to do something for the public good.