Lisensi perangkat lunak
Di luar pemberian hak dan penerapan pembatasan penggunaan perangkat lunak, lisensi perangkat lunak biasanya mengandung ketentuan yang mengatur kewajiban dan tanggung jawab masing-masing pihak. Dalam transaksi perangkat lunak perusahaan dan komersial, syarat-syarat ini (seperti pembatasan tanggung jawab, jaminan dan penyangkalan jaminan, dan ganti rugi jika perangkat lunak melanggar hak kekayaan intelektual pihak lain) sering dinegosiasikan oleh pengacara yang memiliki spesialisasi dalam lisensi perangkat lunak. Spesialisasi praktik hukum di bidang ini telah berkembang karena keunikan masalah hukum pada lisensi perangkat lunak, dan juga keinginan perusahaan perangkat lunak untuk melindungi aset yang, jika tak dilisensikan dengan baik, dapat menghilangkan nilai mereka.
Pemrograman
Apapun pendekatan pengembangan perangkat lunak mungkin, program akhir harus memenuhi beberapa sifat mendasar. Properti berikut adalah di antara yang paling relevan:Bidang akademik dan praktik teknik pemrograman komputer yang baik terutama berkaitan dengan menemukan dan menerapkan algoritme yang paling efisien untuk suatu masalah kelas. Untuk tujuan ini, algoritme diklasifikasikan menjadi perintah dengan menggunakan apa yang disebut notasi Big O, O (n), yang mengungkapkan penggunaan sumber daya, seperti waktu eksekusi atau pemakaian memori, dalam hal ukuran sebuah input. Ahli programmer yang akrab dengan berbagai mapan algoritme dan kompleksitas masing-masing dan menggunakan pengetahuan ini untuk memilih algoritme yang paling cocok dengan keadaan.
Langkah pertama dalam sebagian besar proyek-proyek pengembangan perangkat lunak formal adalah analisis persyaratan, diikuti dengan pengujian untuk menentukan model nilai, pelaksanaan, dan kegagalan penghapusan (debug). Terdapat banyak pendekatan yang berbeda untuk masing-masing tugas. Salah satu pendekatan yang populer untuk analisis kebutuhan adalah Kasus Gunakan analisis.